Этот вопрос похож на на , но ответа не было.
Я пытаюсь включить динамическое распределение в Spark в режиме YARN.У меня есть 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 в рабочих узлах и главном узле.В главном узле я перезапускаю YARN, используя stop-yarn.sh, а затем start-yarn.sh
Затем я делаю YARN node -list -all, чтобы увидеть рабочие узлы, ноЯ не вижу ни одного узла
Когда я отключаю свойство
<property>
<name>yarn.nodemanager.aux-services</name>
<value>spark_shuffle</value>
</property>
, я вижу все рабочие узлы как обычно, поэтому это похоже на случайную службунеправильно настроен.