亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

需求

將統(tǒng)計(jì)結(jié)果按照手機(jī)號(hào),以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ī)號(hào)的字段
//封裝數(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 獲取電話號(hào)碼的前三位
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對(duì)象實(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot使用JTA實(shí)現(xiàn)對(duì)多數(shù)據(jù)源的事務(wù)管理

    SpringBoot使用JTA實(shí)現(xiàn)對(duì)多數(shù)據(jù)源的事務(wù)管理

    了解事務(wù)的都知道,在我們?nèi)粘i_發(fā)中單單靠事務(wù)管理就可以解決絕大多數(shù)問題了,但是為啥還要提出JTA這個(gè)玩意呢,到底JTA是什么呢?他又是具體來解決啥問題的呢?本文小編就給大家介紹一下如何在Spring Boot中使用JTA實(shí)現(xiàn)對(duì)多數(shù)據(jù)源的事務(wù)管理
    2023-11-11
  • 淺談synchronized方法對(duì)非synchronized方法的影響

    淺談synchronized方法對(duì)非synchronized方法的影響

    下面小編就為大家?guī)硪黄獪\談synchronized方法對(duì)非synchronized方法的影響。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • 一篇文章徹底搞懂jdk8線程池

    一篇文章徹底搞懂jdk8線程池

    線程是稀缺資源,如果無限制的創(chuàng)建,不僅會(huì)消耗系統(tǒng)資源,還會(huì)降低系統(tǒng)的穩(wěn)定性,使用線程池可以進(jìn)行統(tǒng)一的分配,調(diào)優(yōu)和監(jiān)控,這篇文章主要給大家介紹了jdk8線程池的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • Retrofit+Rxjava下載文件進(jìn)度的實(shí)現(xiàn)

    Retrofit+Rxjava下載文件進(jìn)度的實(shí)現(xiàn)

    這篇文章主要介紹了Retrofit+Rxjava下載文件進(jìn)度的實(shí)現(xiàn),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-11-11
  • Spring實(shí)現(xiàn)IoC和DI的方法詳解

    Spring實(shí)現(xiàn)IoC和DI的方法詳解

    IoC全稱Inversion of Control (控制反轉(zhuǎn)) ,這里的控制其實(shí)是控制權(quán)的意思,可以理解為對(duì)象的獲取權(quán)力和方式發(fā)生了發(fā)轉(zhuǎn),DI依賴注?是?個(gè)過程,是指IoC容器在創(chuàng)建Bean時(shí), 去提供運(yùn)?時(shí)所依賴的資源,?資源指的就是對(duì)象,本文介紹了Spring實(shí)現(xiàn)IoC和DI的方法
    2024-08-08
  • Java實(shí)現(xiàn)最小生成樹算法詳解

    Java實(shí)現(xiàn)最小生成樹算法詳解

    這篇文章主要介紹了如何在Java中實(shí)現(xiàn)最小生成樹算法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-04-04
  • Java程序圖形用戶界面設(shè)計(jì)之標(biāo)簽組件

    Java程序圖形用戶界面設(shè)計(jì)之標(biāo)簽組件

    圖形界面(簡(jiǎn)稱GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來說在視覺上更易于接受,本篇精講Java語言中關(guān)于圖形用戶界面的標(biāo)簽組件部分
    2022-02-02
  • 關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗(yàn)

    關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗(yàn)

    這篇文章主要介紹了關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗(yàn),@ConfigurationProperties主要作用就是將prefix屬性指定的前綴配置項(xiàng)的值綁定到這個(gè)JavaBean上?,通過指定的前綴,來綁定配置文件中的配置,需要的朋友可以參考下
    2023-05-05
  • Java?OpenCV圖像處理之自定義圖像濾波算子

    Java?OpenCV圖像處理之自定義圖像濾波算子

    這篇文章主要為大家介紹了如何利用Java?OpenCV實(shí)現(xiàn)自定義圖像濾波(降噪)?算子,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2022-02-02
  • Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.Transformer異常

    Caused by: java.lang.ClassNotFoundException: org.apache.comm

    這篇文章主要介紹了Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type異常,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論