Подтвердить что ты не робот

Мой рабочий искры не может подключиться к Мастеру. Что-то не так с Аккой?

Я хочу установить режим Spark Standlone в кластер с двумя моими виртуальными машинами. С версией spark-0.9.1-bin-hadoop1 я успешно запускаю искровую оболочку в каждом vm. Я следую оффициальному документу, чтобы сделать один vm (ip: xx.xx.xx.223) как Master и Worker, так и сделать другой ( ip: xx.xx.xx.224) только для Работника.
Но 224-ip vm не может подключить 223-ip vm. Следующим является главный журнал 223 (мастер):

[@tc-52-223 logs]# tail -100f spark-root-org.apache.spark.deploy.master.Master-1-tc-52-223.out
Spark Command: /usr/local/jdk/bin/java -cp :/data/test/spark-0.9.1-bin-hadoop1/conf:/data/test/spark-0.9.1-bin-hadoop1/assembly/target/scala-2.10/spark-assembly_2.10-0.9.1-hadoop1.0.4.jar -Dspark.akka.logLifecycleEvents=true -Djava.library.path= -Xms512m -Xmx512m org.apache.spark.deploy.master.Master --ip 10.11.52.223 --port 7077 --webui-port 8080

log4j:WARN No appenders could be found for logger (akka.event.slf4j.Slf4jLogger).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
14/04/14 22:17:03 INFO Master: Using Spark default log4j profile: org/apache/spark/log4j-defaults.properties
14/04/14 22:17:03 INFO Master: Starting Spark master at spark://10.11.52.223:7077
14/04/14 22:17:03 INFO MasterWebUI: Started Master web UI at http://tc-52-223:8080
14/04/14 22:17:03 INFO Master: I have been elected leader! New state: ALIVE
14/04/14 22:17:06 INFO Master: Registering worker tc-52-223:20599 with 1 cores, 4.0 GB RAM
14/04/14 22:17:06 INFO Master: Registering worker tc_52_224:21371 with 1 cores, 4.0 GB RAM
14/04/14 22:17:06 INFO RemoteActorRefProvider$RemoteDeadLetterActorRef: Message [org.apache.spark.deploy.DeployMessages$RegisteredWorker] from Actor[akka://sparkMaster/user/Master#1972530850] to Actor[akka://sparkMaster/deadLetters] was not delivered. [1] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
14/04/14 22:17:26 INFO Master: Registering worker tc_52_224:21371 with 1 cores, 4.0 GB RAM
14/04/14 22:17:26 INFO RemoteActorRefProvider$RemoteDeadLetterActorRef: Message [org.apache.spark.deploy.DeployMessages$RegisterWorkerFailed] from Actor[akka://sparkMaster/user/Master#1972530850] to Actor[akka://sparkMaster/deadLetters] was not delivered. [2] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
14/04/14 22:17:46 INFO Master: Registering worker tc_52_224:21371 with 1 cores, 4.0 GB RAM
14/04/14 22:17:46 INFO RemoteActorRefProvider$RemoteDeadLetterActorRef: Message [org.apache.spark.deploy.DeployMessages$RegisterWorkerFailed] from Actor[akka://sparkMaster/user/Master#1972530850] to Actor[akka://sparkMaster/deadLetters] was not delivered. [3] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
14/04/14 22:18:06 INFO Master: akka.tcp://[email protected]_52_224:21371 got disassociated, removing it.
14/04/14 22:18:06 INFO Master: akka.tcp://[email protected]_52_224:21371 got disassociated, removing it.
14/04/14 22:18:06 INFO LocalActorRef: Message [akka.remote.transport.ActorTransportAdapter$DisassociateUnderlying] from Actor[akka://sparkMaster/deadLetters] to Actor[akka://sparkMaster/system/transports/akkaprotocolmanager.tcp0/akkaProtocol-tcp%3A%2F%2FsparkMaster%4010.11.52.224%3A61550-1#646150938] was not delivered. [4] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
14/04/14 22:18:06 INFO Master: akka.tcp://[email protected]_52_224:21371 got disassociated, removing it.
14/04/14 22:18:06 ERROR EndpointWriter: AssociationError [akka.tcp://[email protected]:7077] -> [akka.tcp://[email protected]_52_224:21371]: Error [Association failed with [akka.tcp://[email protected]_52_224:21371]] [
akka.remote.EndpointAssociationException: Association failed with [akka.tcp://[email protected]_52_224:21371]
Caused by: akka.remote.transport.netty.NettyTransport$$anonfun$associate$1$$anon$2: Connection refused: tc_52_224/10.11.52.224:21371
]
14/04/14 22:18:06 INFO Master: akka.tcp://[email protected]_52_224:21371 got disassociated, removing it.
14/04/14 22:18:06 ERROR EndpointWriter: AssociationError [akka.tcp://[email protected]:7077] -> [akka.tcp://[email protected]_52_224:21371]: Error [Association failed with [akka.tcp://[email protected]_52_224:21371]] [
akka.remote.EndpointAssociationException: Association failed with [akka.tcp://[email protected]_52_224:21371]
Caused by: akka.remote.transport.netty.NettyTransport$$anonfun$associate$1$$anon$2: Connection refused: tc_52_224/10.11.52.224:21371
]
14/04/14 22:18:06 ERROR EndpointWriter: AssociationError [akka.tcp://[email protected]:7077] -> [akka.tcp://[email protected]_52_224:21371]: Error [Association failed with [akka.tcp://[email protected]_52_224:21371]] [
akka.remote.EndpointAssociationException: Association failed with [akka.tcp://[email protected]_52_224:21371]
Caused by: akka.remote.transport.netty.NettyTransport$$anonfun$associate$1$$anon$2: Connection refused: tc_52_224/10.11.52.224:21371
]
14/04/14 22:18:06 INFO Master: akka.tcp://[email protected]_52_224:21371 got disassociated, removing it.
14/04/14 22:19:03 WARN Master: Removing worker-20140414221705-tc_52_224-21371 because we got no heartbeat in 60 seconds
14/04/14 22:19:03 INFO Master: Removing worker worker-20140414221705-tc_52_224-21371 on tc_52_224:21371  

Следующий рабочий журнал 223 (рабочий):

14/04/14 22:17:06 INFO Worker: Using Spark default log4j profile: org/apache/spark/log4j-defaults.properties
14/04/14 22:17:06 INFO Worker: Starting Spark worker tc-52-223:20599 with 1 cores, 4.0 GB RAM
14/04/14 22:17:06 INFO Worker: Spark home: /data/test/spark-0.9.1-bin-hadoop1
14/04/14 22:17:06 INFO WorkerWebUI: Started Worker web UI at http://tc-52-223:8081
14/04/14 22:17:06 INFO Worker: Connecting to master spark://xx.xx.52.223:7077...
14/04/14 22:17:06 INFO Worker: Successfully registered with master spark://xx.xx.52.223:7077

Далее - рабочий журнал 224 (рабочий):

Spark Command: /usr/local/jdk/bin/java -cp :/data/test/spark-0.9.1-bin-hadoop1/conf:/data/test/spark-0.9.1-bin-hadoop1/assembly/target/scala-2.10/spark-assembly_2.10-0.9.1-hadoop1.0.4.jar -Dspark.akka.logLifecycleEvents=true -Djava.library.path= -Xms512m -Xmx512m org.apache.spark.deploy.worker.Worker spark://10.11.52.223:7077 --webui-port 8081
========================================

log4j:WARN No appenders could be found for logger (akka.event.slf4j.Slf4jLogger).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
14/04/14 22:17:06 INFO Worker: Using Spark default log4j profile: org/apache/spark/log4j-defaults.properties
14/04/14 22:17:06 INFO Worker: Starting Spark worker tc_52_224:21371 with 1 cores, 4.0 GB RAM
14/04/14 22:17:06 INFO Worker: Spark home: /data/test/spark-0.9.1-bin-hadoop1
14/04/14 22:17:06 INFO WorkerWebUI: Started Worker web UI at http://tc_52_224:8081
14/04/14 22:17:06 INFO Worker: Connecting to master spark://xx.xx.52.223:7077...
14/04/14 22:17:26 INFO Worker: Connecting to master spark://xx.xx.52.223:7077...
14/04/14 22:17:46 INFO Worker: Connecting to master spark://xx.xx.52.223:7077...
14/04/14 22:18:06 ERROR Worker: All masters are unresponsive! Giving up.

Следование - это моя spark-env.sh:

JAVA_HOME=/usr/local/jdk
export SPARK_MASTER_IP=tc-52-223
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=4g
export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
export SPARK_LOCAL_IP=tc-52-223

У меня есть множество решений, но они не могут работать. Пожалуйста, помогите мне.

4b9b3361

Ответ 1

Я не уверен, что это та же самая проблема, с которой я столкнулся, но вы можете попробовать установить SPARK_MASTER_IP то же самое, что и для привязки. В вашем примере это выглядит как 10.11.52.223, а не tc-52-223.

Он должен совпадать с тем, что вы видите при посещении веб-интерфейса мастера node на 8080. Что-то вроде: Spark Master at spark://ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com:7077

Ответ 2

Если вы получаете исключение "Отказано в соединении", вы можете решить его, установив

= > Мастер работает на конкретном хосте

netstat -at | grep 7077

Вы получите что-то похожее на:

tcp        0      0 akhldz.master.io:7077 *:*             LISTEN  

Если это так, то с вашего рабочего host akhldz.master.io(замените akhldz.master.io на ваш главный хост. Если что-то пойдет не так, добавьте запись хоста в файл /etc/hosts )
telnet akhldz.master.io 7077 (Если это не соединение, значит, ваш рабочий тоже не подключится.)

= > Добавление записи хоста в /etc/hosts

Откройте/etc/hosts с вашего рабочего компьютера и добавьте следующую запись (пример)

192.168.100.20   akhldz.master.io

PS: В приведенном выше случае Pillis имела два IP-адреса, имеющих одинаковое имя хоста например:

192.168.100.40  s1.machine.org
192.168.100.41  s1.machine.org

Надеюсь, что это поможет.

Ответ 3

Там много ответов и возможных решений, и этот вопрос немного устарел, но в интересах полноты существует известная ошибка Spark об именах хостов, разрешающих IP-адреса. Я не представляю это как полный ответ во всех случаях, но я предлагаю попробовать с базой только для использования всех IP-адресов и использовать только один конфигуратор SPARK_MASTER_IP. Только с этими двумя практиками я получаю, что мои кластеры работают, и все остальные конфиги, или имена хостов, просто, похоже, гадости.

Итак, в вашем spark-env.sh избавиться от SPARK_WORKER_IP и изменить SPARK_MASTER_IP на IP-адрес, а не на имя хоста.

Я более подробно рассмотрел это в этом ответе.

Для большей полноты здесь часть ответа:

Вы можете пинговать окно, где работает мастер Spark? Можете ли вы пинговать рабочий из мастера? Что еще более важно, можете ли вы без пароля ssh для рабочего из главного окна? В 1.5.2 документах вам нужно быть в состоянии сделать это с помощью закрытого ключа. И иметь работника, введенного в conf/slaves. В конце я скопировал соответствующий абзац.

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

Я думаю, что ведомый файл на главном node, а ssh без пароля не может привести к подобным ошибкам к тому, что вы видите.

В ответ, который я скрестил, есть и старая ошибка, но неясно, как эта ошибка была решена.

Ответ 4

установите порт для искрового работника, например: SPARK_WORKER_PORT=5078... проверьте правильность установки spark-installation

Ответ 5

в основном ваши порты блокируются, поэтому связь с мастером на работника сокращается. здесь https://spark.apache.org/docs/latest/configuration.html#networking

В разделе "Сеть" вы можете увидеть, что некоторые порты по умолчанию случайные. Вы можете установить их на свой выбор, как показано ниже:

val conf = new SparkConf() 
    .setMaster(master) 
    .setAppName("namexxx") 
    .set("spark.driver.port", "51810") 
    .set("spark.fileserver.port", "51811") 
    .set("spark.broadcast.port", "51812") 
    .set("spark.replClassServer.port", "51813") 
    .set("spark.blockManager.port", "51814") 
    .set("spark.executor.port", "51815") 

Ответ 6

В моем случае я мог бы решить эту проблему как "добавление записи имени хоста и IP-адресов локального хоста в файл /etc/hosts " следующим образом:

Для кластера мастер имеет содержимое /etc/hosts следующим образом:

127.0.0.1       master.yourhost.com localhost localhost4 localhost.localdomain
192.168.1.10    slave1.yourhost.com
192.168.1.9     master.yourhost.com **# this line solved the problem**

Затем я также делаю ТО ЖЕ ЧЕМ на машине slave1.yourhost.com.

Надеюсь, что это поможет.

Ответ 7

Я столкнулся с такой же проблемой. вы можете решить эту проблему ниже, сначала вы должны перейти в файл /etc/hosts и отправить комментарий 127.0.1.1. то вы должны пойти в директорию spark/sbin, тогда вы должны запустить искровую сессию с помощью этой команды,

./start-all.sh 

или вы можете использовать ./start-master.sh и ./start-slave.sh для этого. Теперь, если вы запустите spark-shell or pyspark или любую другую искровую составляющую, тогда он автоматически создаст для вас объект контекста-контекста sc.