如何根据输入大小设置减速器数量

时间:2013-10-09 10:46:51

标签: hadoop mapreduce hive apache-pig

如何根据我的输入大小将no.of reducer设置为mapreduce作业。 我知道它在蜂巢和猪中作为flollows

hive.exec.reducers.bytes.per.reducer
pig.exec.reducers.bytes.per.reducer

我想在Map-Reduce工作中做同样的工作,请帮助我

1 个答案:

答案 0 :(得分:2)

我想到的一件事是在提交作业之前分析输入并根据输入大小设置减速器的数量。

例如,如果您正在使用HDFS输入源,则会有一个名为getContentSummary(http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#getContentSummary(org.apache.hadoop.fs.Path))的方法,它会为您提供输入的后退大小。

之后,您可以使用该信息计算减速器的数量。 (一些符合您需求的逻辑)然后使用setNumReduceTasks设置该数字。

对于其他数据源,您应该使用类似的方法。