1

我正在使用 livy-server-0.2 运行 spark 作业,但是,我无法更改 spark.executor.cores 的默认设置,它无法生效,而其他设置可以。

它总是使用 1 个核心来启动一个执行器。

yarn     11893 11889  6 21:08 ?        00:00:01
/opt/jdk1.7.0_80/bin/java -server -XX:OnOutOfMemoryError=kill 
%p -Xms1024m -Xmx1024m -Djava.io.tmpdir=/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1487813931557_0603/container_1487813931557_0603_01_000026/tmp 
-Dspark.driver.port=51553 
-Dspark.yarn.app.container.log.dir=/var/log/hadoop-yarn/containers/application_1487813931557_0603/container_1487813931557_0603_01_000026 
-XX:MaxPermSize=256m org.apache.spark.executor.CoarseGrainedExecutorBackend 
--driver-url spark://CoarseGrainedScheduler@10.1.1.81:51553 --executor-id 19 
--hostname master01.yscredit.com --cores 1 --app-id application_1487813931557_0603 
--user-class-path file:/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1487813931557_0603/container_1487813931557_0603_01_000026/__app__.jar

这是我在 $SPARK_HOME/conf 中的 spark-defaults.conf 文件

spark.master=yarn
spark.submit.deployMode=cluster
spark.executor.instances=7
spark.executor.cores=6
spark.executor.memoryOverhead=1024
spark.yarn.executor.memoryOverhead=1400
spark.executor.memory=11264
spark.driver.memory=5g
spark.yarn.driver.memoryOverhead=600
spark.speculation=true
spark.yarn.executor.memoryOverhead=1400

有谁能够帮我?谢谢!

4

2 回答 2

8

我强烈建议你阅读 Livy 源代码。我认为 Livy 的文档很少,所以你可能会遇到很多 google 无法解决的问题。Livy 只是一个中间件,代码量相对较少。

您可以从 3 个位置指定 spark 参数:

  • 位置 A:如果你已经在你的创建会话 post 请求中设置了 spark 参数到 LivyServer ,那么你的 post 请求中发生的任何配置都不能被任何配置文件覆盖。也就是说,你的 post 请求中的配置有最高优先级;

  • 位置B:然后,在$LIVY_HOME/conf,可以设置spark参数如'spark.driver.memory' atspark-defaults.conflivy-client.conf;

  • Location C:最后,Livy 也会使用 at 的配置 $SPARK_HOME/conf/spark-defaults.conf,但是这里的配置优先级最低,也就是说只有没有在 Location A/B 发生的配置才会生效。

于 2017-11-13T11:14:18.900 回答
1

纱线中有一个属性限制了集群上的资源。

sudo  vi /etc/hadoop/conf/capacity-scheduler.xml

将属性更改为以下

"yarn.scheduler.capacity.resource-calculator": "org.apache.hadoop.yarn.util.resource.DominantResourceCalcul‌​ator"

为了使此属性适用,您必须重新启动纱线

 sudo  hadoop-yarn-resourcemanager stop

重新启动纱线

sudo  hadoop-yarn-resourcemanager start 
于 2017-11-13T20:39:38.573 回答