我正在使用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-history用户界面时,两个执行程序(1和2)都显示在&#34; Executors&#34;选项卡以及驱动程序。在同一页面的核心列中,两个执行程序都显示为2。
当我将执行程序内存设置为5G及更低时,我的spark应用程序运行良好,两个工作节点执行程序都在运行。当我将执行程序内存设置为6G或更高时,只有一个工作节点运行执行程序。为什么会这样?注意:我已经尝试增加yarn.nodemanager.resource.memory-mb并且它没有改变这种行为。