🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**调整 reduce 个数方法一:** ``` -- 每个 Reduce 处理的数据量默认是 256MB,单位是Byte hive.exec.reducers.bytes.per.reducer=256000000 -- 每个任务最大的 reduce 数,默认为 1009 hive.exec.reducers.max=1009 -- 然后由下面的的公式自动计算出所需要的reduce数量 N=min(hive.exec.reducers.max, 总输入数据量/hive.exec.reducers.bytes.per.reducer) ``` <br/> **调整 reduce 个数方法二:** 在 hadoop 的 mapred-site.xml 文件中修改设置每个 job 的 Reduce 个数。 ```xml <property> <name>mapreduce.job.reduces</name> <value>15</value> </property> ``` <br/> reduce 个数并不是越多越好: (1)过多的启动和初始化 reduce 也会消耗时间和资源; (2)另外,有多少个 reduce,就会有多少个输出文件,如果生成了很多个小文件,那么如果这些小文件作为下一个任务的输入,则也会出现小文件过多的问题; <br/> 在设置 reduce 个数的时候也需要考虑这两个原则: * 处理大数据量利用合适的 reduce 数; * 使单个 reduce 任务处理数据量大小要合适。