写点什么

关于在 hive 任务中 number of reducers 的探讨

作者:编程江湖
  • 2022 年 3 月 30 日
  • 本文字数:343 字

    阅读完需:约 1 分钟

1.在默认情况下(set mapreduce.job.reduces=-1),实际运行计算过程中 reducer 的数量会由所读取文件的大小来决定。文件默认大小是 256M,即每 256M 对应一个 reduce。比如当文件大小为 1G 时,会启用 4 个 reducer 处理数据;当文件大小为 400M 时,会启用 2 个 reducer 来处理。

2.在进行分区或者 sort by 操作时,需要设置 mapreduce.job.reduces 的数量,此时实际启用的 reducer 的个数等于设置值。

3.1 在进行分桶操作的情况下,当 set mapreduce.job.reduces=-1 或 0 时,此时实际启用 rediucer 的数量会等于桶的个数 i。

3.2 在进行分桶操作的情况下,当桶的个数是 i 时,并且 0< set mapreduce.job.reduces<=i 时,启用 reducer 的数量正好是 i 的因数。在 i 相邻的两个因数之间,启用 reducer 的个数是不变的。详见下表:

当 i 为偶数时:


当 i 为奇数时:


关键词:大数据培训

用户头像

编程江湖

关注

IT技术分享 2021.11.23 加入

关注【IT云文化】微信公众号,获取学习资源

评论

发布
暂无评论
关于在hive任务中number of reducers的探讨_编程江湖_InfoQ写作平台