在hadoop上的一个流媒体作业中使用多个映射器输入?

时间:2012-08-29 14:54:33

标签: python hadoop streaming

在java中我会使用:

  

MultipleInputs.addInputPath(conf,path,inputFormatClass,mapperClass)

为每个输入使用不同的映射器添加多个输入。

现在我正在使用python在hadoop中编写流媒体作业,是否可以完成类似的工作?

2 个答案:

答案 0 :(得分:3)

您可以使用多个输入选项指定多个输入路径:

hadoop jar hadoop-streaming.jar -input foo.txt -input bar.txt ...

答案 1 :(得分:1)

我想这可以帮到你:https://github.com/hyonaldo/hadoop-multiple-streaming

在这里,您可以看到"这些不同输入路径的不同映射器"以及:

hadoop jar hadoop-multiple-streaming.jar \  
  -input    myInputDirs \  
  -multiple "outputDir1|mypackage.Mapper1|mypackage.Reducer1" \  
  -multiple "outputDir2|mapper2.sh|reducer2.sh" \  
  -multiple "outputDir3|mapper3.py|reducer3.py" \  
  -multiple "outputDir4|/bin/cat|/bin/wc" \  
  -libjars  "libDir/mypackage.jar" \
  -file     "libDir/mapper2.sh" \  
  -file     "libDir/mapper3.py" \  
  -file     "libDir/reducer2.sh" \  
  -file     "libDir/reducer3.py"