Spark On Yarn External Shuffle Service
本文基于spark-3.1.2-bin-without-hadoop.tgz版本,所以spark-3.1.2-yarn-shuffle.jar已经在节点的${SPARK_HOME}/yarn
目录下。
HADOOP_CLASSPATH
在所有NodeManager节点上设置环境变量:
1 | export HADOOP_CLASSPATH=${SPARK_HOME}/yarn/spark-3.1.2-yarn-shuffle.jar:$HADOOP_CLASSPATH |
yarn-site.xml
在yarn-site.xml中添加以下配置,并分发至所有NodeManager节点。
1 | <!-- Spark Configuration --> |
重启NodeManager
1 | yarn --daemon stop nodemanager |
检查
在NodeManager节点上使用以下命令查看7337端口是否已被监听:
1 | netstat -ntlp|grep 7337 |
该端口通过spark.shuffle.service.port指定,默认是7337。
启用
在${SPARK_HOME}/conf/spark-defaults.conf
中添加以下配置,并分发至所有节点。
1 | spark.shuffle.service.enabled true |