CombineFileInputFormat

CombineFileInputFormat

我有很多小的输入文件,我想使用CombineFileInputFormat等输入格式将它们组合起来,以启动较少的映射器任务。我知道我可以使用Java API来执行此操作,但是我不知道在使用Hadoop流传输时是否有支持此功能的流传输jar库。

最佳答案

Hadoop流默认情况下使用TextInputFormat,但可以使用任何其他输入格式,包括CombineFileInputFormat。您可以使用-inputformat选项从命令行更改输入格式。确保使用旧的API并实现org.apache.hadoop.mapred.lib.CombineFileInputFormat。目前尚不支持新的API。

$HADOOP_HOME/bin/hadoop jar \
      $HADOOP_HOME/hadoop-streaming.jar \
      -inputformat foo.bar.MyCombineFileInputFormat \
      -Dmapred.max.split.size=524288000 \
      -Dstream.map.input.ignoreKey=true \
      ...

Example of CombineFileInputFormat

10-07 16:29