2015-11-05 68 views
2

我試圖安裝一個獨立的Spark集羣。我準備了3個安裝了Ubuntu的虛擬機。apache spark start-slave throws akka.actor.ActorNotFound異常

這三臺機器由一個主站和兩個從站組成。

我遵循Apache spark文檔中的步驟。我從主節點啓動了主腳本,它工作正常。

問題發生在奴隸身上。

我試圖從每臺機器使用sbin/start-slave.sh啓動從機,而另一次使用主機節點的sbin/start-slaves.sh

奴隸節點上的工人無法啓動,並拋出以下異常

15/11/06 02:12:36 WARN Worker: Failed to connect to master rethink-node01:7077 
akka.actor.ActorNotFound: Actor not found for: ActorSelection[Anchor(akka.tcp://[email protected]:7077/), Path(/user/Master)] 
     at akka.actor.ActorSelection$$anonfun$resolveOne$1.apply(ActorSelection.scala:65) 
     at akka.actor.ActorSelection$$anonfun$resolveOne$1.apply(ActorSelection.scala:63) 
     at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 
     at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55) 
     at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:73) 
     at akka.dispatch.ExecutionContexts$sameThreadExecutionContext$.unbatchedExecute(Future.scala:74) 
     at akka.dispatch.BatchingExecutor$class.execute(BatchingExecutor.scala:120) 
     at akka.dispatch.ExecutionContexts$sameThreadExecutionContext$.execute(Future.scala:73) 
     at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) 
     at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) 
     at akka.pattern.PromiseActorRef.$bang(AskSupport.scala:266) 
     at akka.actor.EmptyLocalActorRef.specialHandle(ActorRef.scala:533) 
     at akka.actor.DeadLetterActorRef.specialHandle(ActorRef.scala:569) 
     at akka.actor.DeadLetterActorRef.$bang(ActorRef.scala:559) 
     at akka.remote.RemoteActorRefProvider$RemoteDeadLetterActorRef.$bang(RemoteActorRefProvider.scala:87) 
     at akka.remote.EndpointWriter.postStop(Endpoint.scala:557) 
     at akka.actor.Actor$class.aroundPostStop(Actor.scala:477) 
     at akka.remote.EndpointActor.aroundPostStop(Endpoint.scala:411) 
     at akka.actor.dungeon.FaultHandling$class.akka$actor$dungeon$FaultHandling$$finishTerminate(FaultHandling.scala:210) 
     at akka.actor.dungeon.FaultHandling$class.terminate(FaultHandling.scala:172) 
     at akka.actor.ActorCell.terminate(ActorCell.scala:369) 
     at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:462) 
     at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478) 
     at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263) 
     at akka.dispatch.Mailbox.run(Mailbox.scala:219) 
     at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) 
     at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
     at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
     at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
     at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 
+0

好奇,如果答案的工作?你沒有接受它,所以我不承認?這是如何解決的?我認爲有幾個主機名/ Spark相關的錯誤會影響到這一點,例如https://issues.apache.org/jira/browse/SPARK-11570 – JimLohse

+0

和順便說一句,看到主日誌中發生的事情對這些在工作人員似乎在黑暗中摸索的時候,主人可以發現連接失敗,因爲主人可以聽到工人的聲音,但不能與他們溝通。只是一個想法。 – JimLohse

回答

4

我面對這一點的同時建立一個獨立的火花集羣。對我來說這是由於純粹的網絡設置問題引起的。

從從機嘗試做

的telnet MASTER_IP 7077

如果沒有,那麼你需要或者檢查防火牆設置,或在我的情況下檢查建立了連接,其中火花端口7077正在收聽。雖然它不起作用,但這是我的netstat的輸出。

netstat -an | grep的7077

TCP 0 0 127.0.0.2:7077 ::: * LISTEN

我打消了我從/ etc/hosts中127.0.0.2問題的條目,然後一切都開始正常工作。

netstat -an | grep的7077

TCP 0 0 1.1.1.1:7077 ::: * LISTEN

+0

+1,看起來Spark並不總是適合這些環回地址的使用,特別是127.0.0.1以外的版本,請嘗試在127.0.1.1上搜索,並且會有很多debian文檔的鏈接出現。 http://serverfault.com/questions/363095/why-does-my-hostname-appear-with-the-address-127-0-1-1-rather-than-127-0-0-1-in I必須在我所有的Spark配置中使用明確的IP地址,否則我會得到一個錯誤 – JimLohse

相關問題