我正在使用一个ec2 hadoop集群,它由20台c3.8xlarge机器组成,每台机器有60 GB RAM和32个虚拟CPU . 在每台机器中,我都设置了纱线和mapreduce设置,如下所示https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hadoop-task-config.html,即如下所示:
c3.8xlarge
Configuration Option Default Value
mapreduce.map.java.opts -Xmx1331m
mapreduce.reduce.java.opts -Xmx2662m
mapreduce.map.memory.mb 1664
mapreduce.reduce.memory.mb 3328
yarn.app.mapreduce.am.resource.mb 3328
yarn.scheduler.minimum-allocation-mb 32
yarn.scheduler.maximum-allocation-mb 53248
yarn.nodemanager.resource.memory-mb 53248
现在我必须使用什么标准来确定与giraph一起使用的最合适的 Worker 数量?即我必须使用什么数字用于-w参数?该标准是否与上述设置有关?
1 回答
没有最佳数字,但您可以大致平行的最平行的工作人员可以这样计算 .
每个NodeManager都有53248 MB,乘以您的从属节点数
从中减去一个
am.resource.mb
金额,因为所有工作都需要应用程序主服务器 .然后将其除以mapper或reducer内存中较大的一个,以获得可以一次运行的MapReduce任务总数