最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

hadoop?全面解讀自定義分區(qū)

 更新時(shí)間:2024年10月11日 12:01:30   作者:緣不易  
Hadoop是一個(gè)由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲

需求

將統(tǒng)計(jì)結(jié)果按照手機(jī)號,以136、137、138、139開頭的數(shù)據(jù)分別放到一個(gè)獨(dú)立的文件中,其他開頭的放到一個(gè)文件中。(分區(qū))

輸入數(shù)據(jù)

1863157985066 120.196.100.82 2481 24681 200
1363157995033 120.197.40.4 264 0 200
1373157993055 120.196.100.99 132 1512 200
1393154400022 120.197.40.4 240 0 200
1363157993044 120.196.100.99 1527 2106 200
1397157993055 120.197.40.4 4116 1432 200
1463157993055 120.196.100.99 1116 954 200
1383157995033 120.197.40.4 3156 2936 200
1363157983019 120.196.100.82 240 0 200
1383154400022 120.197.40.4 6960 690 200
1363157973098 120.197.40.4 3659 3538 200
1373157993055 120.196.100.99 1938 180 200
1363154400022 120.196.100.99 918 4938 200
1393157993055 120.197.40.4 180 180 200
1363157984040 120.197.40.4 1938 2910 200

具體實(shí)現(xiàn):

第一步:自定義Mapper:

public class PhoneMapper extends Mapper {
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String line = value.toString(); //拿到一行數(shù)據(jù)
String[] fields = line.split(“\s+”); //切分成各個(gè)字段
String phoneNumber = fields[0]; //拿到手機(jī)號的字段
//封裝數(shù)據(jù)為key-value進(jìn)行輸出
context.write(new Text(phoneNumber), value);
}
}

第二步:自定義Partitioner

public class PhonePartitioner extends Partitioner {
@Override
public int getPartition(Text key, Text value, int numPartitions) {
String preNum = key.toString().substring(0, 3); // 1 獲取電話號碼的前三位
int partition = 4;
switch (preNum) {
case “136”:
partition = 0;
break;
case “137”:
partition = 1;
break;
case “138”:
partition = 2;
break;
case “139”:
partition = 3;
break;
default:
break;
}
return partition;
}
}

第三步:自定義Reducer

public class PhoneReducer extends Reducer {
int index = 0;
@Override
protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException {
index++;
context.write(new LongWritable(index), values.iterator().next());
}
}

第四步:自定義Driver

public class PhoneDriver {
public static void main(String[] args) throws Exception {
args = new String[2];
args[0] = “src/main/resources/phonei”;
args[1] = “src/main/resources/phoneo”;

    // 1 獲取配置信息,或者job對象實(shí)例
    Configuration cfg = new Configuration();
    //設(shè)置本地模式運(yùn)行(即使項(xiàng)目類路徑下core-site.xml文件,依然采用本地模式)
    cfg.set("mapreduce.framework.name", "local");
    cfg.set("fs.defaultFS", "file:///");
    Job job = Job.getInstance(cfg);
    // 2 指定本程序的jar包所在的本地路徑
    job.setJarByClass(PhoneDriver.class);
    // 3 指定本業(yè)務(wù)job要使用的mapper/Reducer業(yè)務(wù)類
    job.setMapperClass(PhoneMapper.class);
    job.setReducerClass(PhoneReducer.class);
    // 4 指定mapper輸出數(shù)據(jù)的kv類型
    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(Text.class);
    // 5 指定最終輸出的數(shù)據(jù)的kv類型
    job.setOutputKeyClass(LongWritable.class);
    job.setOutputValueClass(Text.class);
    // 8 指定自定義數(shù)據(jù)分區(qū)
    job.setPartitionerClass(PhonePartitioner.class);
    // 9 同時(shí)指定相應(yīng)數(shù)量的reduce task(必須指定)
    job.setNumReduceTasks(5);  //----①
    // 6 指定job的輸入原始文件所在目錄
    FileInputFormat.setInputPaths(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));
    // 7 將job中配置的相關(guān)參數(shù),以及job所用的java類所在的jar包, 提交給yarn去運(yùn)行
    boolean result = job.waitForCompletion(true);
    System.exit(result ? 0 : 1);
}
}

到此這篇關(guān)于hadoop 全面解讀自定義分區(qū)的文章就介紹到這了,更多相關(guān)hadoop 自定義分區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring WebFlux的使用指南

    Spring WebFlux的使用指南

    這篇文章主要介紹了Spring WebFlux的使用指南,幫助大家更好的理解和學(xué)習(xí)使用Spring框架,感興趣的朋友可以了解下
    2021-05-05
  • dom4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法

    dom4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猟om4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • SpringCloud-Gateway轉(zhuǎn)發(fā)WebSocket失敗問題及解決

    SpringCloud-Gateway轉(zhuǎn)發(fā)WebSocket失敗問題及解決

    這篇文章主要介紹了SpringCloud-Gateway轉(zhuǎn)發(fā)WebSocket失敗問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 啟用springboot security后登錄web頁面需要用戶名和密碼的解決方法

    啟用springboot security后登錄web頁面需要用戶名和密碼的解決方法

    這篇文章主要介紹了啟用springboot security后登錄web頁面需要用戶名和密碼的解決方法,也就是使用默認(rèn)用戶和密碼登錄的操作方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • jdk-logging?log4j?logback日志系統(tǒng)實(shí)現(xiàn)機(jī)制原理介紹

    jdk-logging?log4j?logback日志系統(tǒng)實(shí)現(xiàn)機(jī)制原理介紹

    這篇文章主要介紹了jdk-logging、log4j、logback日志介紹以及三個(gè)日志系統(tǒng)的實(shí)現(xiàn)機(jī)制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 關(guān)于java關(guān)鍵字this和super的區(qū)別和理解

    關(guān)于java關(guān)鍵字this和super的區(qū)別和理解

    這篇文章主要給大家介紹了關(guān)于java關(guān)鍵字this和super的區(qū)別和理解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • JAVA解決在@autowired,@Resource注入為null的情況

    JAVA解決在@autowired,@Resource注入為null的情況

    這篇文章主要介紹了JAVA解決在@autowired,@Resource注入為null的情況,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Spring Boot JPA中使用@Entity和@Table的實(shí)現(xiàn)

    Spring Boot JPA中使用@Entity和@Table的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Boot JPA中使用@Entity和@Table的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Mybatis的mapper標(biāo)簽 namespace屬性用法說明

    Mybatis的mapper標(biāo)簽 namespace屬性用法說明

    這篇文章主要介紹了Mybatis的mapper標(biāo)簽 namespace屬性用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java后端長時(shí)間無操作自動退出的實(shí)現(xiàn)方式

    Java后端長時(shí)間無操作自動退出的實(shí)現(xiàn)方式

    這篇文章主要介紹了Java后端長時(shí)間無操作自動退出的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論

伊吾县| 镇安县| 无为县| 太保市| 张家港市| 城口县| 江孜县| 安岳县| 尼勒克县| 翁牛特旗| 花莲县| 夏津县| 方山县| 米泉市| 安顺市| 泰来县| 泸西县| 汉寿县| 景宁| 泸水县| 繁昌县| 龙江县| 腾冲县| 永福县| 塘沽区| 山东省| 绍兴市| 屏东县| 大庆市| 中江县| 通化市| 阳山县| 宁河县| 夏津县| 芒康县| 徐水县| 仪征市| 建始县| 江达县| 且末县| 兴城市|