hadoop - mapreduce.job.running.reduce.limit 和 mapred.reduce.tasks 有什么区别
问题描述
我们使用的是 Hadoop 2.7.1,我发现以下 2 个参数都在一些现有的 MapReduce 代码中设置,
mapreduce.job.running.reduce.limit=500
mapred.reduce.tasks=50
后者似乎有效,因为最终生成了 50 个 part-* 文件。
有谁知道这两个参数之间的区别,如果人们同时指定这两个参数,实际会发生什么?谢谢你。
解决方案
来自官方文档:
mapreduce.job.running.reduce.limit
每个作业同时减少任务的最大数量。如果此值为 0 或负数,则没有限制。
如果人们同时指定它们,实际上会发生什么?
在您的示例中将无效。但是,如果您将限制设置为 50 并将任务设置为 500,则 hadoop 将不会一次运行所有 500 个减速器,即使您的集群容量足够了。
推荐阅读
- javascript - Chart Js - 条形图 - 如何使标签的第一行加粗?
- laravel - 我未能在 Laravel 8 应用程序中安装 Font Awesome
- python - numpy,多个操作会导致创建中间数组吗?
- mp3 - 如何使音频播放器可见?
- agora.io - agora 项目的 Netless appId
- c++ - nlohmann json没有成员“异常”错误(vscode c++)
- c - 如何对具有多个条件的结构数组进行排序?
- vba - Selenium VBA 更改属性
- javascript - React - 在 useEffect 内向 useState 添加新参数被延迟
- c - 如何检查文本是否为数字