簡體   English   中英

hadoop中用於映射器和組合器的不同上下文類型

[英]Different context types in hadoop for mapper and combiner

您好,我正在嘗試實現Java hadoop應用程序。 我想制作<Object,Text,NaicsAreaPair,LongWritable>的映射器(因此,映射器的輸出將是NaicsAreaPair作為鍵,將LongWritable作為值)。 然后,我需要組合器像<NaicsAreaPair,LongWritable,Text,AreaWagePair>一樣,這樣輸入與映射器輸出是正確的,但是組合器輸出與映射器輸出不同。

我在主班有這個配置:

public static void main(String[] args) throws Exception {
 Configuration conf = new Configuration();
 Job job = Job.getInstance(conf, "NY statistics");
 job.setJarByClass(NYStatisticsOwnWritableComparable.class);
 job.setMapperClass(TokenizerMapper.class);
 job.setCombinerClass(Combiner.class);
 job.setReducerClass(IntSumReducer.class);
 job.setOutputKeyClass(NaicsAreaPair.class);
 job.setOutputValueClass(LongWritable.class);
 //job.setPartitionerClass(Rozdelovac.class);
 FileInputFormat.addInputPath(job, new Path(args[0]));
 FileOutputFormat.setOutputPath(job, new Path(args[1]));
 //job.setNumReduceTasks(3);
 System.exit(job.waitForCompletion(true) ? 0 : 1);
}

在這里,我不得不說將使用哪個輸出鍵和輸出值。 是否有可能設置它為映射器使用此輸出鍵和值,但對於組合器使用不同的設置呢?

非常感謝您的回答

它不是。 組合器的輸出必須與Mapper的輸出相同。

為什么要為此使用組合器? 通過減少網絡上發送的數據,合並器可以達到“性能”的目的。 有一些限制,例如輸入/輸出類型必須匹配映射器輸出(鍵/值)類型/縮減器輸入(鍵/值)類型,它執行的功能應該是關聯和可交換的,請參見此處的示例http:// www .philippeadjiman.com /博客/ 2010/03/14 / Hadoop的教程系列問題-4使用的有或沒有使用的-A-組合/

您想要的合成器,讓它成為減速器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM