我们的集群work有8台机器,每台4核 8G ,一共有 32核64G,为什么Hadoop job 的并行map 数最大是22 ,如图中所示,
Hadoop job 配置:
-D ""mapred.reduce.tasks=0"" \
-input $input \
-output $output \
-mapper ""python client.py"" \
-file ./client.py
请问这个并发map数由什么决定?怎样优化"
如果map的总个数超过32个,则实际可能就只能分配22个container。64g 并不代表 就有64g在用,会有一些系统及datanode、namenode的内存消耗的。 8g,估计只有6g汇报。总内存在44g左右。 每个container2g的话,则正好22个。你可以 打开yarn的resourcemanager看下。
可以修改每个container的大小提高个数,增高并发,但是OOM的风险也增加。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。