我使用的是一个3节点集群:1个主节点和2个工作节点,使用t2.large ec2示例。
“free-m”命令提供以下信息:
硕士学位:
total used free shared buffers cached
Mem: 7733 6324 1409 0 221 4555
-/+ buffers/cache: 1547 6186
Swap: 1023 0 1023
工作节点1:
total used free shared buffers cached
Mem: 7733 3203 4530 0 185 2166
-/+ buffers/cache: 851 6881
Swap: 1023 0 1023
工作节点2:
total used free shared buffers cached
Mem: 7733 3402 4331 0 185 2399
-/+ buffers/cache: 817 6915
Swap: 1023 0 1023
在yarn-site.xml文件中,我设置了以下属性:
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>7733</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>7733</value>
</property>
在 $SPARK_HOME/conf/spark-defaults.conf
我正在设置 spark.executor.cores
在 2
以及 spark.executor.instances
在 2
.
运行spark应用程序后查看spark历史ui时,两个执行器(1和2)与驱动程序一起显示在“executors”选项卡中。在同一页的cores列中,两个执行者都有2个。
当我将executor内存设置为5g或更低时,spark应用程序在两个工作节点executor都运行的情况下运行良好。当我将executor内存设置为6g或更多时,只有一个worker节点运行executor。为什么会这样?注意:我已尝试增加yarn.nodemanager.resource.memory-mb,但它不会改变此行为。
暂无答案!
目前还没有任何答案,快来回答吧!