【发布时间】:2013-10-21 02:52:38
【问题描述】:
我有很多小的输入文件,我想使用CombineFileInputFormat 之类的输入格式将它们组合起来以启动更少的映射器任务。我知道我可以使用 Java API 来做到这一点,但我不知道在我使用 Hadoop 流时是否有流 jar 库来支持此功能。
【问题讨论】:
标签: hadoop mapreduce streaming
我有很多小的输入文件,我想使用CombineFileInputFormat 之类的输入格式将它们组合起来以启动更少的映射器任务。我知道我可以使用 Java API 来做到这一点,但我不知道在我使用 Hadoop 流时是否有流 jar 库来支持此功能。
【问题讨论】:
标签: hadoop mapreduce streaming
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 \
...
【讨论】: