如果我将执行程序内存增加到5 GB以上,为什么Spark只在我的2个工作节点集群上使用一个执行程序?

时间:2017-10-14 00:00:18

标签: hadoop apache-spark amazon-ec2 yarn

我正在使用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并且它没有改变这种行为。

0 个答案:

没有答案