apache-spark - 在 YARN 模式下启用 spark 的动态分配
问题描述
这个问题与此类似,但没有答案。
我正在尝试在 YARN 模式下启用 Spark 中的动态分配。我有 11 个节点集群,有 1 个主节点和 10 个工作节点。我正在按照以下链接获取说明:
对于 YARN 中的设置:http: //spark.apache.org/docs/latest/running-on-yarn.html#configuring-the-external-shuffle-service
配置变量需要在 spark-defaults.conf 中设置:https ://spark.apache.org/docs/latest/configuration.html#dynamic-allocation https://spark.apache.org/docs/latest/configuration。 html#shuffle-behavior
我还参考了以下链接和其他一些资源: https ://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-dynamic-allocation.html#spark.dynamicAllocation.testing
以下是我正在执行的步骤:
在 spark-defaults.conf 中设置配置变量。我的与动态分配和洗牌服务相关的 spark-defaults.conf 如下:
spark.dynamicAllocation.enabled=true spark.shuffle.service.enabled=true spark.shuffle.service.port=7337
在 yarn-site.xml 中进行更改
<property> <name>yarn.nodemanager.aux-services</name> <value>spark_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.spark_shuffle.class</name> <value>org.apache.spark.network.yarn.YarnShuffleService</value> </property> <property> <name>yarn.nodemanager.recovery.enabled</name> <value>true</value> </property> <property> <name>yarn.application.classpath</name> <value> $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/common/*,$HADOOP_MAPRED_HOME/share/hadoop/common/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/hdfs/*,$HADOOP_MAPRED_HOME/share/hadoop/hdfs/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/yarn/*,$HADOOP_MAPRED_HOME/share/hadoop/yarn/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/tools/*,$HADOOP_MAPRED_HOME/share/hadoop/tools/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/client/*,$HADOOP_MAPRED_HOME/share/hadoop/client/lib/*,/home/hadoop/spark/common/network-yarn/target/scala-2.11/spark-2.2.2-SNAPSHOT-yarn-shuffle.jar </value> </property>
所有这些步骤都在所有工作节点中复制,即 spark-defaults.conf 具有上述值,yarn-site.xml 具有这些属性。我已确保 /home/hadoop/spark/common/network-yarn/target/scala-2.11/spark-2.2.2-SNAPSHOT-yarn-shuffle.jar 存在于所有工作节点中。
然后我在工作节点和主节点中运行 $SPARK_HOME/sbin/start-shuffle-service.sh 。在主节点中,我使用 stop-yarn.sh 然后 start-yarn.sh 重新启动 YARN
然后我正在做 YARN node -list -all 来查看工作节点,但我看不到任何节点
当我禁用该属性时
<property> <name>yarn.nodemanager.aux-services</name> <value>spark_shuffle</value> </property>
我可以正常看到所有工作节点,因此似乎没有正确配置 shuffle 服务。
解决方案
推荐阅读
- swift - FileManager 更改给定 URL 路径
- winforms - 未聚焦的控件是在另一个控件聚焦时捕获按键
- angular - 如何在 Angular 中更改下拉选择颜色
- android - 警报重新安排 - 强制终止后,AlarmManager pendingIntent 不为空
- apache-nifi - Nifi Routeon属性
- php - 我在编写 PHP 代码时做错了什么?
- symfony - Symfony 5 将参数传递给注销/登录功能
- javascript - React 中的 DOM 与 Refs
- java - 当用户拒绝说时,我可以限制用户使用我的应用程序吗,比如推送通知
- asp.net-core - ASP NET Core 2.2 虚拟路径