1

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

4

1 回答 1

2

默认情况下使用 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 \
      ...

组合文件输入格式示例

于 2013-12-19T00:21:25.820 回答