Python 设置减速器不工作的数量

Python 设置减速器不工作的数量,python,hadoop,streaming,Python,Hadoop,Streaming,我正在使用Hadoop streaming和-io typedbytes,并将mapred.reduce.tasks设置为2,但最终只得到了一个输出文件。如果我设置mapred.reduce.tasks=0,那么我会得到很多输出文件。我很困惑 所以我的问题是: 当我在流媒体中使用-io typedbytes时,如何使mapred.reduce.tasks=num(num>1)config有效? PS:我的映射器的输出是(key:string of python,value:array of nu

我正在使用Hadoop streaming和-io typedbytes,并将mapred.reduce.tasks设置为2,但最终只得到了一个输出文件。如果我设置mapred.reduce.tasks=0,那么我会得到很多输出文件。我很困惑

所以我的问题是: 当我在流媒体中使用-io typedbytes时,如何使mapred.reduce.tasks=num(num>1)config有效?

PS:我的映射器的输出是(key:string of python,value:array of numpy)。 和my.sh文件:
hadoop jar$hadoop_HOME/contrib/streaming/hadoop-streaming-1.2.1.jar\ -D mapred.reduce.tasks=2\ -fs本地\ -jt本地\ -io类型字节\ -inputformat org.apache.hadoop.mapred.SequenceFileAsBinaryInputFormat\ -输入FFT\u序列文件\ -输出引脚输出\ -映射器“pinvmap.py”\ -文件pinvmap.py\

-D mapred.reduce.tasks=2 \ -fs local \ -jt local
通过检查
-fs
-jt
的值,我知道您正在
本地
模式下运行它。
local
模式下,零减速器或一减速器都可以运行atmost
因为它使用本地文件系统和单个JVM,所以在这种模式下没有Hadoop守护进程。
psuedo分布式
模式下,所有守护进程都在同一台计算机上运行,属性
-D mapred.reduce.tasks=n
将工作并产生
n
还原程序。
因此,您应该使用
psuedo分布式
模式来处理多个减速器。

希望有帮助

顺便说一句,如果您在使用
mapred.reduce.tasks=0
时有很多输出文件,那是因为没有reducer,所以您需要查看映射程序的输出。谢谢您,Chowdary&ALSimon。现在可以用了。@KevinS不客气。。若答案能解决你们的问题,请接受。