Включение динамического выделения при искре в режиме YARN - PullRequest
0 голосов
/ 24 ноября 2018

Этот вопрос похож на на , но ответа не было.

Я пытаюсь включить динамическое распределение в 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

Вот шаги, которые я делаю:

  1. Настройкапеременные конфигурации в spark-defaults.conf.Мой файл spark-defaults.conf, связанный с сервисом динамического размещения и случайного воспроизведения, выглядит следующим образом:

    spark.dynamicAllocation.enabled=true
    spark.shuffle.service.enabled=true
    spark.shuffle.service.port=7337
    
  2. Внесение изменений в 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 существует во всех рабочих узлах.

  3. Затем я запускаю $ SPARK_HOME / sbin / start-shuffle-service.sh в рабочих узлах и главном узле.В главном узле я перезапускаю YARN, используя stop-yarn.sh, а затем start-yarn.sh

  4. Затем я делаю YARN node -list -all, чтобы увидеть рабочие узлы, ноЯ не вижу ни одного узла

  5. Когда я отключаю свойство

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>spark_shuffle</value>
    </property>
    

    , я вижу все рабочие узлы как обычно, поэтому это похоже на случайную службунеправильно настроен.

...