Spark-Sql On YARN自动调整Executor数量配置
最新的Spark 1.4版本支持为Spark On YARN模式的Spark Application根据Task自动调整Executor数,要启用该功能,需做以下操作:
一:
在所有的NodeManager中,修改yarn-site.xml,为yarn.nodemanager.aux-services添加spark_shuffle值,设置yarn.nodemanager.aux-services.spark_shuffle.class值为org.apache.spark.network.yarn.YarnShuffleService,如下:
-
<property>
-
<name>yarn.nodemanager.aux-services</name>
-
<value>mapreduce_shuffle,spark_shuffle<alue>
-
</property>
-
<property>
-
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
-
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
-
</property>
二:
将 $SPARK_HOME/lib/spark-1.4.0-yarn-shuffle.jar文件拷贝到hadoop-yarn/lib目录下(即yarn的库目录)
将这个jar包复制到 hadoop/share/hadoop/yarn 这个路径下
或者软连接处理
备注:
这个操作在所有的 nodemanager 中操作
三:
配置 $SPARK_HOME/conf/spark-default.xml,内容如下
-
spark.dynamicAllocation.minExecutors 1 #最小Executor数
-
spark.dynamicAllocation.maxExecutors 100 #最大Executor数
四:
执行时开启自动调整Executor数开关,以spark-sql yarn client模式为例:
-
spark-sql --master yarn --deploy-mode client --conf spark.shuffle.service.enabled=true --conf spark.dynamicAllocation.enabled=true -e "SELECT COUNT(*) FROM xx"
对于使用spark-submit也是一样:
点击(此处)折叠或打开
-
spark-submit \
-
--class SySpark.SqlOnSpark \
-
--master yarn-client \
-
--conf spark.shuffle.service.enabled=true \
-
--conf spark.dynamicAllocation.enabled=true \
-
/data/jars/SqlOnSpark.jar \
-
"SELECT COUNT(*) FROM xx"
链接地址:http://doc.okbase.net/simplefocus/archive/123088.html
阅读(7836) | 评论(0) | 转发(0) |