【发布时间】:2018-04-28 07:13:50
【问题描述】:
我在 AWS EMR-Spark 上运行一个应用程序。这里是 spark-submit 作业;-
Arguments : spark-submit --deploy-mode cluster --class com.amazon.JavaSparkPi s3://spark-config-test/SWALiveOrderModelSpark-1.0.assembly.jar s3://spark-config-test/2017-08-08
AWS 使用 YARN 进行资源管理。我正在查看指标(下面的屏幕截图),但对 YARN“容器”指标有疑问。
这里,分配的容器显示为 2。但是,我使用的是 4 个节点(3 个从站 + 1 个主站),所有 8 核 CPU。那么,如何只分配 2 个容器?
【问题讨论】:
-
您为这项工作分配了多少内核内存?请记住,您的一个节点运行应用程序管理器,该管理器在该节点上保留 1 个核心。因此,如果您尝试为每个执行器分配 8 个核心,它只会启动 2 个执行器。
-
应用管理器在主节点上运行对吧?另外,我没有指定任何内核内存,所以它必须选择一些默认值。
-
不,AM 在从属设备上运行 - 而不是在驱动程序上运行。您是否记得使用此设置调整
capacity-scheduler.xml:"yarn.scheduler.capacity.resource-calculator":"org.apache.hadoop.yarn.util.resource.DominantResourceCalculator"?你需要指定你想要的执行者的数量。 YARN 不会自动使用您的整个集群。
标签: apache-spark hadoop-yarn amazon-emr