Запуск Spark на подчиненном узле (YARN) не работает

Я могу запустить пример SparkPi на главном узле, но когда я пытаюсь выполнить ту же команду «spark-submit --class SparkPi --master yarn-client sparkpi.jar 10» на подчиненном узле, я получаю сообщение об ошибке:

2015-05-19 14:05:44,881 INFO  [main] spark.SecurityManager (Logging.scala:logInfo(59)) - Changing view acls to: maintainer
2015-05-19 14:05:44,886 INFO  [main] spark.SecurityManager (Logging.scala:logInfo(59)) - Changing modify acls to: maintainer
2015-05-19 14:05:44,887 INFO  [main] spark.SecurityManager (Logging.scala:logInfo(59)) - SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(maintainer); users with modify permissions: Set(maintainer)
2015-05-19 14:05:45,389 INFO  [sparkDriver-akka.actor.default-dispatcher-4] slf4j.Slf4jLogger (Slf4jLogger.scala:applyOrElse(80)) - Slf4jLogger started
2015-05-19 14:05:45,443 INFO  [sparkDriver-akka.actor.default-dispatcher-4] Remoting (Slf4jLogger.scala:apply$mcV$sp(74)) - Starting remoting
2015-05-19 14:05:45,641 INFO  [sparkDriver-akka.actor.default-dispatcher-3] Remoting (Slf4jLogger.scala:apply$mcV$sp(74)) - Remoting started; listening on addresses :[akka.tcp://[email protected]:33055]
2015-05-19 14:05:45,644 INFO  [sparkDriver-akka.actor.default-dispatcher-3] Remoting (Slf4jLogger.scala:apply$mcV$sp(74)) - Remoting now listens on addresses: [akka.tcp://[email protected]:33055]
2015-05-19 14:05:45,653 INFO  [main] util.Utils (Logging.scala:logInfo(59)) - Successfully started service 'sparkDriver' on port 33055.
2015-05-19 14:05:45,674 INFO  [main] spark.SparkEnv (Logging.scala:logInfo(59)) - Registering MapOutputTracker
2015-05-19 14:05:45,688 INFO  [main] spark.SparkEnv (Logging.scala:logInfo(59)) - Registering BlockManagerMaster
2015-05-19 14:05:45,707 INFO  [main] storage.DiskBlockManager (Logging.scala:logInfo(59)) - Created local directory at /tmp/spark-local-20150519140545-c81b
2015-05-19 14:05:45,712 INFO  [main] storage.MemoryStore (Logging.scala:logInfo(59)) - MemoryStore started with capacity 265.4 MB
2015-05-19 14:05:46,205 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2015-05-19 14:05:46,408 INFO  [main] spark.HttpFileServer (Logging.scala:logInfo(59)) - HTTP File server directory is /tmp/spark-e95a2b5b-efea-41eb-93b9-0a9f7d6f6701
2015-05-19 14:05:46,413 INFO  [main] spark.HttpServer (Logging.scala:logInfo(59)) - Starting HTTP Server
2015-05-19 14:05:46,477 INFO  [main] server.Server (Server.java:doStart(272)) - jetty-8.y.z-SNAPSHOT
2015-05-19 14:05:46,499 INFO  [main] server.AbstractConnector (AbstractConnector.java:doStart(338)) - Started [email protected]:52737
2015-05-19 14:05:46,500 INFO  [main] util.Utils (Logging.scala:logInfo(59)) - Successfully started service 'HTTP file server' on port 52737.
2015-05-19 14:05:46,790 INFO  [main] server.Server (Server.java:doStart(272)) - jetty-8.y.z-SNAPSHOT
2015-05-19 14:05:46,805 INFO  [main] server.AbstractConnector (AbstractConnector.java:doStart(338)) - Started [email protected]:4040
2015-05-19 14:05:46,805 INFO  [main] util.Utils (Logging.scala:logInfo(59)) - Successfully started service 'SparkUI' on port 4040.
2015-05-19 14:05:46,808 INFO  [main] ui.SparkUI (Logging.scala:logInfo(59)) - Started SparkUI at http://slave2.com:4040
2015-05-19 14:05:47,058 INFO  [main] spark.SparkContext (Logging.scala:logInfo(59)) - Added JAR file:/home/maintainer/myjars/sparkpi.jar at http://[ip]:52737/jars/sparkpi.jar with timestamp 1432033547057
2015-05-19 14:05:47,190 INFO  [main] client.RMProxy (RMProxy.java:createRMProxy(98)) - Connecting to ResourceManager at /0.0.0.0:8032
2015-05-19 14:09:45,861 INFO  [main] client.RMProxy (RMProxy.java:createRMProxy(98)) - Connecting to ResourceManager at /0.0.0.0:8032
**2015-05-19 14:09:47,067 INFO  [main] ipc.Client (Client.java:handleConnectionFailure(842)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2015-05-19 14:09:48,068 INFO  [main] ipc.Client (Client.java:handleConnectionFailure(842)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
...**

person antarktikka    schedule 19.05.2015    source источник
comment
Что такое yarn.resourcemanager.hostname в конфигурации пряжи?   -  person Remus Rusanu    schedule 19.05.2015
comment
@RemusRusanu, ты имеешь в виду yarn-site.xml? нет такого параметра   -  person antarktikka    schedule 19.05.2015
comment
Установите его на имя хоста RM, на узле RM и на всех узлах NM.   -  person Remus Rusanu    schedule 19.05.2015
comment
@RemusRusanu, я сделал это (добавил свойство yarn.resourcemanager.hostname со значением mymaster.com в yarn-site.xml во всех узлах), но ничего не изменилось :( Я также пробовал ip адрес вместо имени, не повезло опять таки   -  person antarktikka    schedule 20.05.2015


Ответы (2)


Помимо указания свойства yarn.resourcemanager.hostname в yarn-site.xml, также необходимо распространить файлы конфигурации на рабочие процессы.

Это можно сделать с помощью этой строки (перед запуском spark-submit):

export SPARK_YARN_DIST_FILES=$(ls $HADOOP_CONF_DIR* | sed 's#^#file://#g' | tr '\n' ',' | sed 's/,$//')

Если все настроено правильно, вы увидите имя хоста RM вместо 0.0.0.0 в этой строке:

2015-05-19 14:05:47,190 INFO  [main] client.RMProxy (RMProxy.java:createRMProxy(98)) - Connecting to ResourceManager at /0.0.0.0:8032
person Wildfire    schedule 21.05.2015
comment
спасибо, это помогло справиться с ошибкой, упомянутой выше, но теперь у меня другая ошибка: 2015-05-25 11:10:51,982 WARN [Timer-0] cluster.YarnClientClusterScheduler (Logging.scala:logWarning(71)) — начальная работа не принял никаких ресурсов; проверьте пользовательский интерфейс вашего кластера, чтобы убедиться, что рабочие процессы зарегистрированы и имеют достаточно памяти. Я пытался добавить параметры в свою команду spark-submit --class SparkPi --master yarn-client --executor-memory 512m --driver-memory 512m sparkexamples.jar. 10, но это не помогает. - person antarktikka; 25.05.2015

Экспорт правильных значений для HADOOP_CONF_DIR устранил проблему.

export HADOOP_CONF_DIR=/your-path/hadoop/conf
person spats    schedule 29.01.2016