2017-09-26 116 views
1

我正在部署使用獨立羣集管理器的Spark Apache應用程序。我的架構採用了2個窗口機壹臺作爲主,而另一組作爲奴隸(工人)工人無法連接到Spark Apache中的主服務器

主:關於這一點我運行:\bin>spark-class org.apache.spark.deploy.master.Master,這是什麼網站界面顯示:

從站:關於這一點我運行:\bin>spark-class org.apache.spark.deploy.worker.Worker spark://192.*.*.186:7077這是什麼網絡界面顯示了:

的問題是,工作節點無法連接到主節點,並顯示以下錯誤:

17/09/26 16:05:17 INFO Worker: Connecting to master 192.*.*.186:7077... 
17/09/26 16:05:22 WARN Worker: Failed to connect to master 192.*.*.186:7077 
org.apache.spark.SparkException: Exception thrown in awaitResult: 
    at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:205) 
    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75) 
    at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:100) 
    at org.apache.spark.rpc.RpcEnv.setupEndpointRef(RpcEnv.scala:108) 
    at org.apache.spark.deploy.worker.Worker$$anonfun$org$apache$spark$deploy$worker$Worker$$tryRegisterAllMasters$1$$anon$1.run(Worker.scala:241) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
    Caused by: java.io.IOException: Failed to connect to /192.*.*.186:7077 
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:232) 
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:182) 
    at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:197) 
    at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:194) 
    at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:190) 
    ... 4 more 
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /192.*.*.186:7077 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) 
    at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:257) 
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:291) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:631) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:566) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480) 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442) 
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131) 
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) 
    ... 1 more 

如果知道兩臺機器都禁用了防火牆,並且我測試了它們之間的連接(使用nmap)並且一切正常,那麼可能出現此錯誤的情況!但使用telnet我收到此錯誤:Connecting To 192.*.*.186...Could not open connection to the host, on port 23: Connect failed

+1

你嘗試使用telnet手動連接嗎? –

+0

那是怎麼回事?它的用途是什麼? –

+0

您必須激活telnet(請參閱https://social.technet.microsoft.com/wiki/contents/articles/910.windows-7-enabling-telnet-client.aspx),然後運行telnet 192。*。* .186 7077'。 –

回答

0

你能告訴我你的spark-env.sh conf?這將有助於查明您的問題。

我的第一個想法是,您需要導出SPARK_MASTER_HOST=(master ip)而不是文件。您需要爲主控和從屬進行。同時爲主控和從屬輸出SPARK_LOCAL_IP

+0

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/17501968) –

相關問題