如何强制hadoop运行超过1减少工作

时间:2014-08-30 04:33:43

标签: hadoop mapreduce

我有一个5节点的Hadoop集群,其中2个节点专门用作数据节点,并且还运行tasktracker。

我像

一样运行我的hadoop工作
sudo -u hdfs hadoop jar /tmp/MyHadoopJob2.jar com.abhi.MyHadoopJob2 -D mapred.reduce.tasks=2 /sample/cite75_99.txt /output3

作业成功运行,我可以看到正确的输出......但现在我去门户网站

http://jt1.abhi.com:50030

我可以看到

enter image description here

因此只有1个减少工作正在运行。

我特别注意运行多个reduce作业的原因是我想确认hadoop是否仍会创建一个完美排序的输出文件,即使不同的机器上运行不同的reduce作业实例?

目前我的输出文件已完全排序,但这是因为只运行了1个reducer作业。

2 个答案:

答案 0 :(得分:1)

Reducer有2个职位: 1.减少映射的键,值对 2.在执行此操作时组合两个映射器输出

因为你只有2个数据节点,所以只有2个映射器可以同时运行,在任何给定时刻只允许一个可能的减速器

答案 1 :(得分:1)

输出文件的数量将基于给定作业的reducer数量。但是,如果您的要求需要,您仍然可以将多个文件合并到一个文件中。

要合并使用下面的hadoop shell命令

command> hadoop fs -getmerge <src> <localdst>
src: hdfs output folder path
localdst: local system path with filename(one file)

希望这可以澄清你的怀疑。