【发布时间】:2016-03-04 09:26:19
【问题描述】:
我正在使用 Amazon 特定的 maximizeResourceAllocation 标志为 Spark 运行 EMR 集群(版本 emr-4.2.0),如记录的 here 所示。根据这些文档,“此选项计算核心节点组中节点上的执行程序可用的最大计算和内存资源,并使用此信息设置相应的 spark-defaults 设置”。
我正在使用工作节点的 m3.2xlarge 实例运行集群。我正在为 YARN 主服务器使用单个 m3.xlarge - 我可以让它运行的最小 m3 实例,因为它没有太多作用。
情况是这样的:当我运行 Spark 作业时,每个执行程序请求的内核数为 8。(我在配置 "yarn.scheduler.capacity.resource-calculator": "org.apache.hadoop.yarn.util.resource.DominantResourceCalculator" 后才得到这个,这实际上不在文档中,但我离题了)。这似乎是有道理的,因为根据these docs,一个 m3.2xlarge 有 8 个“vCPU”。但是,在实际实例本身上,在/etc/hadoop/conf/yarn-site.xml 中,每个节点都配置为将yarn.nodemanager.resource.cpu-vcores 设置为16。我会(猜测)认为这一定是由于超线程或其他一些硬件的幻想。
所以问题是这样的:当我使用 maximizeResourceAllocation 时,我得到了 Amazon Instance 类型具有的“vCPU”数量,这似乎只是 YARN 运行的已配置“VCore”数量的一半节点;结果,执行程序只使用了实例上实际计算资源的一半。
这是 Amazon EMR 中的错误吗?其他人是否遇到同样的问题?我还缺少其他一些神奇的无证配置吗?
【问题讨论】:
标签: apache-spark hadoop-yarn emr amazon-emr elastic-map-reduce