[英]EMR 4.1.0 + Spark 1.5.0 + YARN Resource Allocation
我正在使用EMR 4.1.0 + spark 1.5.0 + YARN处理大数据。 我正在尝试利用完整群集,但是有些情况下YARN并未分配所有资源。
yarn.nodemanager.resource.memory-mb-> 53856 yarn.nodemanager.resource.cpu-vcores-> 26 yarn.scheduler.capacity.resource-calculator-> org.apache.hadoop.yarn.util.resource.DominantResourceCalculator(so纱线可以同时管理内存和核心)
然后我以pyspark --master yarn-client --num-executors 24 --executor-memory 8347m --executor-cores 4开始了pyspark
但是RM UI显示以下内容
它仅分配21个容器,而请求的24个27 GB保留内存和12个保留核心可用于分配更多3个容器。 对?
我在这里想念什么?
谢谢!
从这里开始 ,看来您的基地应该是53248M。 此外,必须考虑10%的内存开销(spark.yarn.executor.memoryOverhead)。 53248 * .9 = 47932M,可以在每个节点上分配。 如果为每个执行程序分配8347M,则每个节点只能包含5个。 47932-5 * 8347 = 6197M,这不足以启动第六个执行程序。 最后3个执行程序(每个节点一个)没有启动,因为没有足够的内存来启动它们。 如果要有24个容器,请使用--executor-memory 7987M启动
请注意,如果使用此配置,则将有6个未使用的核心/节点。 该电子表格可以帮助您找到适用于任何类型/大小的群集的最佳配置
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.