设置减速机的数量不起作用

lnlaulya  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(319)

我正在使用hadoop streaming和-io typedbytes,并设置mapred.reduce.tasks=2,但最终只得到一个输出文件。如果我设置mapred.reduce.tasks=0,那么我会得到很多输出文件。我很困惑。
所以我的问题是:在流媒体中使用-io typedbytes时,如何使mapred.reduce.tasks=num(num>1)config有效?
ps:我的Map器的输出是(key:string of Python,value:array of 努比)。以及我的.sh文件:
hadoop jar$hadoop\u home/contrib/streaming/hadoop-streaming-1.2.1.jar -d mapred.reduce.tasks=2 -fs local -jt local -io typedbytes -inputformat org.apache.hadoop.mapred.sequencefileasbinaryinputformat -input fft\u sequencefile -output pinvoutput -mapper'pinvmap.py'-file pinvmap.py\

e3bfsja2

e3bfsja21#

-D mapred.reduce.tasks=2 \ -fs local \ -jt local

通过检查 -fs 以及 -jt 我才知道你在试 local 模式。
local 模式下,零或一个减速机可以运行atmost。
因为它使用本地文件系统和单个jvm,所以在这种模式下没有hadoop守护进程。
psuedo distributed 所有守护程序在同一台计算机上运行的模式,属性 -D mapred.reduce.tasks=n 将工作和结果 n 异径管。
所以你应该用 psuedo distributed 使用多个减速器的模式。
希望有帮助!

相关问题