小编Mom*_*lov的帖子

在运行Spark作业时,YARN不会基于公平份额抢占资源

我在YARN Fair Scheduled队列上重新平衡Apache Spark作业资源时遇到问题.

对于测试,我已经配置了Hadoop 2.6(也尝试过2.7)以在MacOS上使用本地HDFS以伪分布式模式运行.对于作业提交使用Spark的网站上的 "Pre-build Spark 1.4 for Hadoop 2.6 and later"(也试过1.5).

在Hadoop MapReduce作业上使用基本配置进行测试时,Fair Scheduler按预期工作:当群集资源超过某个最大值时,将计算公平份额,并根据这些计算抢占和平衡不同队列中作业的资源.

使用Spark作业运行相同的测试,在这种情况下,YARN正在为每个作业正确计算公平份额,但Spark容器的资源不会重新平衡.

这是我的conf文件:

$ HADOOP_HOME的/ etc/Hadoop的/纱线的site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
      <value>org.apache.spark.network.yarn.YarnShuffleService</value>
   </property>
   <property>
      <name>yarn.resourcemanager.scheduler.class</name>
      <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
   </property>
   <property>
      <name>yarn.scheduler.fair.preemption</name>
      <value>true</value>
   </property>
</configuration>
Run Code Online (Sandbox Code Playgroud)

$ HADOOP_HOME的/ etc/Hadoop的/公平scheduler.xml

<?xml version="1.0" encoding="UTF-8"?>
<allocations>
   <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
   <queue name="prod">
      <weight>40</weight>
      <schedulingPolicy>fifo</schedulingPolicy>
   </queue>
   <queue name="dev">
      <weight>60</weight>
      <queue name="eng" />
      <queue name="science" />
   </queue>
   <queuePlacementPolicy>
      <rule name="specified" create="false" />
      <rule name="primaryGroup" create="false" /> …
Run Code Online (Sandbox Code Playgroud)

hadoop job-scheduling hadoop-yarn apache-spark

20
推荐指数
1
解决办法
1720
查看次数