2015-11-02 70 views
1

我使用EMR 4.1.0 + spark 1.5.0 + YARN来处理大数据。我试图利用完整的集群,但是一些YARN没有分配所有资源。EMR 4.1.0 + Spark 1.5.0 + YARN资源分配

  • 使用4×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 yarn can管理内存和内核)

然后,我开始pyspark与 pyspark --master纱客户--num执行人24 --executor内存8347米--executor,核心4

但是RM用户界面会显示以下

enter image description here

它只分配21个容器vs请求24个 27 GB保留内存和12个保留核心可用于分配更多3个容器。对?

缺少什么我在这里?

谢谢!

回答

0

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

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

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

相关问题