我正在使用Mapreduce模型的Hadoop框架,并且实际上尝试了像WordCount,Max_temperature这样的基本示例,以便为我的项目创建mapreduce任务。我只想知道如何将wordcount作为一个输出文件处理每个输入文件...就像让我举一个例子: -
FILE_1 Dog Cat Dog Bull
FILE_2 Cow Ox Tiger Dog Cat
FILE_3 Dog Cow Ox Tiger Bull
应该给出3个输出文件,每个输入文件1个如下: -
Out_1 Dog 2,Cat 1,Bull 1
Out_2 Cow 1,Ox 1,Tiger 1,Dog 1,Cat 1
Out_3 Dog 1,Cow 1,Ox 1,Tiger 1,Bull 1
我查看了Hadoop MapReduce - one output file for each input发布的答案,但无法正确掌握。
请帮忙!感谢
答案 0 :(得分:0)
每个Reducer输出一个输出文件。 输出文件的数量取决于Reducers的数量。
(A) 假设您要在单个MapReduce作业中处理所有三个输入文件。
至少 - 您必须将Reducers的数量设置为您想要的输出文件数。
因为你试图对每个文件进行单词计数。而不是跨文件。 您必须确保单个Reducer处理所有文件内容(一个文件)。使用自定义分区程序是一种方法。
(B) 另一种方法是简单地运行你的MapReduce作业三次。一次为每个输入文件。并且Reducer计为1。
答案 1 :(得分:0)
即使我是hadoop的新手,也发现这个问题非常有趣。这就是我解决这个问题的方法。
#