您好我在纱线模式下使用SparkR。
当我以这种方式提交申请时:
./spark-submit --master yarn-client --packages com.databricks:spark-
csv_2.10:1.0.3 --driver-memory 6g --num-executors 8 --executor-memory 6g
--total-executor-cores 32 --executor-cores 8 /home/sentiment/Scrivania/test3.R
一个节点从AM开始(我认为是随机选择的)并且需要1gb内存和1个Vcore。 之后,所有节点都有7Gb内存,每个节点有1个Vcore。 (除了启动具有8gb和2核的AM的节点外)
为什么节点没有获得4个核心,因为配置/火花提交说明了什么?
火花默认
spark.master spark://server1:7077
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.driver.memory 5g
spark.executor.memory 6g
spark.executor.cores 4
spark.akka.frameSize 1000
spark.yarn.am.cores 4
spark.kryoserializer.buffer.max 700m
spark.kryoserializer.buffer 100m
纱线的管理
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>server1:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>server1:8035</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>server1:8050</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>server1:8088</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-vcores</name>
<value>4</value>
</property>
</configuration>
UPDATE1:
从旧帖子中读取我需要在capacity-scheduler.xml
<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
</property>
在Spark-env
添加SPARK_EXECUTOR_CORES=4
没有任何改变。
UPDATE2: 我从spark官方网页上看到了这个,所以Yarn模式中每个执行者的1个核心是最大值?
spark.executor.cores每个执行程序使用的核心数。对于 仅限YARN和独立模式。在独立模式下,设置此项 参数允许应用程序在同一个上运行多个执行程序 工人,只要该工人有足够的核心。 否则,每个应用程序只会运行一个执行程序。