2014-04-14 1 views
13

두 개의 가상 시스템으로 클러스터에 Spark Standalone 모드를 설치하려고합니다.
spark-0.9.1-bin-hadoop1의 버전에서는 각 VM에서 spark-shell을 성공적으로 실행합니다. the offical document을 따라 하나의 VM (ip : xx.xx.xx.223)을 마스터와 워커로 만들고 다른 하나 (IP : xx.xx.xx.224)를 워커로 만 만듭니다.
그러나 224-ip vm은 223-ip vm에 연결할 수 없습니다. 이어내 스파크의 작업자가 아카와 함께 Master.Something을 연결할 수 없습니까?

14/04/14 22:17:06 INFO Worker: Using Spark's 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 (작업자)의 작업 로그이다 :

의 작업자 로그 : 이어 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's 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 (작업자)은 S 마스터 로그'인

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 
: 다음
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's 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입니다

나는 많은 솔루션을 봤지만 작업은 불가능하다. 도와주세요.

+0

Scala 2.11 코드를 실행하려고합니까? – BAR

답변

9

이 문제가 발생한 경우 확실하지 않지만 SPARK_MASTER_IP과 동일한 스파크 바인딩을 설정하려고 할 수 있습니다. 예를 들어 10.11.52.223이고 tc-52-223이 아닌 것처럼 보이는 것입니다.

그것은 당신이 같은 8080 뭔가에 마스터 노드 웹 UI를 방문 할 때 당신이 보는 것과 동일해야합니다 : 당신은 "연결이 거부"얻는 경우 Spark Master at spark://ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com:7077

+0

감사! 이게 내 문제를 해결했습니다! – hotienvu

+0

@FatGhosta 이것은 아마 당신의 문제를 해결 했습니까? 비슷한 문제를 추적하려고하고 있는데 해상도가 알려지지 않은 두 가지 질문을 발견했습니다. 아마도 우리는 결코 알지 못할 것입니다! 이 다른 질문에 대한 심층적 인 대답을 게시했습니다. http://stackoverflow.com/questions/28453835/apache-sparck-error-could-not-connect-to-akka-tcp-sparkmaster/34499020#34499020] 가능한 경우 모든 IP를 사용하는 것이 가장 안전합니다. 그러나 이전 버전을 사용하고있었습니다. 어떻게 이런 일이 있었습니까? – JimLohse

6

예외는, 당신은

를 확인하여 해결할 수 있습니다

=> 마스터가 특정 호스트에서 실행중인

netstat -at | grep 7077 

당신은 비슷한 얻을 것이다 :

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

이런 경우, 다음 작업자 기계에서 호스트 akhldz.master.io (뭔가 잘못 마스터 host.If와 akhldz.master.io 교체를 수행 한 후 /에 호스트 항목을 추가 etc/hosts 파일)
telnet akhldz.master.io 7077 (연결되어 있지 않으면 작업자가 연결되지 않습니다./etc/hosts 파일에서)

=> 추가 호스트 항목

오픈/등/담당 직원의 컴퓨터에서 호스트와 다음 항목 (예)

192.168.100.20 akhldz.master.io 

PS 추가 : 위에서을 도움이

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

희망 : 경우 Pillis는 같은 호스트 이름 예를 가진 두 개의 IP 주소를 가지고 있었다.

+1

아파치 스파크 사용자 메일 링리스트 (http://mail-archives.apache.org/mod_mbox/spark-user/201402.mbox/%[email protected].com%3E)에서 복사 한 것 같습니다. 질문에 대한 링크를 추가하고이 대답을 삭제하는 것이 더 좋을 수도 있습니다. – TooTone

+0

나는 메일 링리스트 = P – AkhlD

+1

:)에 답장을했다. 그러나 이것은 질문에 대한 답변이 아닌 메일 링리스트의 질문에 대한 답처럼 보인다. (stackoverflow OP가 아닌 메일 링리스트의 OP도 언급한다.) – TooTone

0

또한 스파크 작업자를위한 포트를 설정합니다. 예 : SPARK_WORKER_PORT=5078 ...올바른 설치를 위해 spark-installation 링크를 확인하십시오.

0

기본적으로 포트가 차단되어 마스터와 작업자 간의 통신이 끊어집니다. 여기에서 확인하십시오 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") 
2

가 답변 가능한 해결책의 많은, 그리고이 질문은 조금 오래된,하지만 완전성의 이익, 해결 호스트 이름에 대한 알려진 스파크 버그가 IP 주소. 나는이 모든 것을 모든 경우에 완전한 대답으로 제시하지는 않겠지 만 모든 IP를 사용하는 기준으로 시도하고 단일 구성 SPARK_MASTER_IP 만 사용하는 것이 좋습니다. 이 두 가지 사례를 통해 클러스터를 작동시키고 다른 모든 구성 또는 호스트 이름을 사용하면 문제가 생길 수 있습니다.

그래서 spark-env.sh에서 SPARK_WORKER_IP를 제거하고 SPARK_MASTER_IP를 호스트 이름이 아닌 IP 주소로 변경하십시오.

당신이 스파크 마스터가 실행되고있는 상자에 ping : 더 완성도를 들어

I have treated this more at length in this answer.

여기에 그 해답의 일부? 당신은 주인에게서 노동자를 Ping 할 수 있습니까? 더 중요한 것은, 당신은 비밀 번호가 덜 마스터 상자에서 작업자에게 ssh 수 있습니까? 1.5.2 문서 당 개인 키를 사용하여 수행 할 수 있고 작업자가 conf/slaves 파일에 입력해야합니다. 나는 관련 단락을 마지막에 복사했습니다.

작업자가 주인과 연락 할 수있는 상황이 발생할 수 있지만 주인이 다시 작업자에게 연락 할 수 없으므로 연결이없는 것처럼 보입니다. . 양방향을 확인하십시오.

나는 슬레이브 파일을 마스터 노드에두고 암호가없는 ssh로 인해보고있는 것과 유사한 오류가 발생할 수 있다고 생각합니다.

대답에 따라 there's also an old bug이 교차되었지만 버그가 해결 된 방법이 명확하지 않습니다. 다음과 같이

0

나는 내 경우, 나는이 같은 문제를 극복 할 수 "등 /에 로컬 호스트의 호스트 이름과 IP ADRES의 항목을 추가/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 컴퓨터에서도 동일한 작업을 수행합니다.

희망이 도움이 ..

0

나는 똑같은 문제에 직면했다. 아래 절차에 따라 문제를 해결할 수 있습니다. 먼저 /etc/hosts 파일로 이동하고 127.0.1.1 주소로 보내야합니다. 는 당신은

./start-all.sh 

, 당신이이 명령으로 세션을 촉발 시작해야 다음, spark/sbin 디렉토리쪽으로 이동해야하거나 동일한에 대한 ./start-master.sh./start-slave.sh를 사용할 수 있습니다. 이제 spark-shell or pyspark 또는 다른 스파크 구성 요소를 실행하면 자동으로 스파크 컨텍스트 개체 sc이 생성됩니다.

관련 문제