首页 文章

EMR 4.1.0 Spark 1.5.0 YARN资源分配

提问于
浏览
1

我正在使用EMR 4.1.0 spark 1.5.0 YARN来处理大数据 . 我正在尝试使用完整集群,但有些YARN没有分配所有资源 .

  • 使用4个X c3.8xlarge EC2从节点(每个60.0 GB内存和32个内核)

  • 根据这个article我在EMR集群中设置了以下参数

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进行pyspark --master yarn-client --num-executors 24 --executor-memory 8347m --executor-cores 4

但RM UI显示如下

enter image description here

它仅分配21个容器与请求的24个27 GB预留内存,12个预留核心可用于分配更多3个容器 . 对?

我在这里错过了什么?

谢谢!

1 回答

  • 0

    From here,看起来你的基数应该是53248M . 此外,必须考虑10%的内存开销(spark.yarn.executor.memoryOverhead) . 53248 * .9 = 47932M,可以在每个节点上分配 . 如果为每个执行程序分配8347M,则每个节点只能包含其中的5个 . 47932 - 5 * 8347 = 6197M,没有足够的可用内存来启动第6个执行程序 . 最后3个执行程序(每个节点一个)没有启动,因为它们没有足够的内存来启动它们 . 如果您想拥有24个容器,请使用--executor-memory 7987M启动

    请注意,如果使用此配置,则将有6个未使用的核心/节点 . 此电子表格可以帮助您找到任何类型/大小的群集的最佳配置

    https://docs.google.com/spreadsheets/d/1VH7Qly308hoRPu5VoLIg0ceolrzen-nBktRFkXHRrY4/edit#gid=1524766257

相关问题