如何控制一个Hive查询同时启动的最大容器数量



我有一个Hive表,在HDFS上有1000个文件,每个文件约为128m(一个HDFS块为128m)。当我从此表中选择"计数(1)"时,它将总共运行1000个映射器,这是可以的。

让事情不好的是,这个蜂巢查询将尝试尽可能多地启动尽可能多的映射器,鉴于群集资源可用(当然最多只有1000个)。

这确实很糟糕和丑陋,因为它可能同时占据太多资源,留下其他应用程序没有资源可以使用并必须等待。

我的问题是如何控制同时运行的最大映射器?

也就是说,例如,对于1000个映射器,随时随地,最多有100个映射器同时运行,因此它不会同时占据太多资源(Spark具有--num-executors and --executor-cores参数具有这样的控制)

在Hadoop 2.7.0起,MapReduce提供了两个配置选项来实现这一目标:

  • mapreduce.job.running.map.limit(默认值:0,无限制)
  • mapreduce.job.running.reduce.limit(默认值:0,无限制)

MapReduce-5583:能够限制运行地图并减少任务

相关内容

  • 没有找到相关文章

最新更新