【问题标题】:Failed to bind to: spark-master, using a remote cluster with two workers无法绑定到:spark-master,使用具有两个工作人员的远程集群
【发布时间】:2015-07-06 13:15:06
【问题描述】:

我正在设法让本地主机和两个远程工作人员正常工作。现在,我想连接到具有相同远程工作人员的远程主机。我尝试了使用 /etc/hosts 和 Internet 上的其他建议的不同设置组合,但没有任何效果。

主类是:

public static void main(String[] args) {
    ScalaInterface sInterface = new ScalaInterface(CHUNK_SIZE,
            "awsAccessKeyId",
            "awsSecretAccessKey");

    SparkConf conf = new SparkConf().setAppName("POC_JAVA_AND_SPARK")
            .setMaster("spark://spark-master:7077");

    org.apache.spark.SparkContext sc = new org.apache.spark.SparkContext(
            conf);

    sInterface.enableS3Connection(sc);
    org.apache.spark.rdd.RDD<Tuple2<Path, Text>> fileAndLine = (RDD<Tuple2<Path, Text>>) sInterface.getMappedRDD(sc, "s3n://somebucket/");

    org.apache.spark.rdd.RDD<String> pInfo = (RDD<String>) sInterface.mapPartitionsWithIndex(fileAndLine);

    JavaRDD<String> pInfoJ = pInfo.toJavaRDD();

    List<String> result = pInfoJ.collect();

    String miscInfo = sInterface.getMiscInfo(sc, pInfo);

    System.out.println(miscInfo);

}

失败于:

List<String> result = pInfoJ.collect();

我得到的错误是:

1354 [sparkDriver-akka.actor.default-dispatcher-3] ERROR akka.remote.transport.netty.NettyTransport  - failed to bind to spark-master/192.168.0.191:0, shutting down Netty transport
1354 [main] WARN  org.apache.spark.util.Utils  - Service 'sparkDriver' could not bind on port 0. Attempting port 1.
1355 [main] DEBUG org.apache.spark.util.AkkaUtils  - In createActorSystem, requireCookie is: off
1363 [sparkDriver-akka.actor.default-dispatcher-3] INFO  akka.remote.RemoteActorRefProvider$RemotingTerminator  - Shutting down remote daemon.
1364 [sparkDriver-akka.actor.default-dispatcher-3] INFO  akka.remote.RemoteActorRefProvider$RemotingTerminator  - Remote daemon shut down; proceeding with flushing remote transports.
1364 [sparkDriver-akka.actor.default-dispatcher-5] INFO  akka.remote.RemoteActorRefProvider$RemotingTerminator  - Remoting shut down.
1367 [sparkDriver-akka.actor.default-dispatcher-4] INFO  akka.event.slf4j.Slf4jLogger  - Slf4jLogger started
1370 [sparkDriver-akka.actor.default-dispatcher-6] INFO  Remoting  - Starting remoting
1380 [sparkDriver-akka.actor.default-dispatcher-4] ERROR akka.remote.transport.netty.NettyTransport  - failed to bind to spark-master/192.168.0.191:0, shutting down Netty transport
Exception in thread "main" 1382 [sparkDriver-akka.actor.default-dispatcher-6] INFO  akka.remote.RemoteActorRefProvider$RemotingTerminator  - Shutting down remote daemon.
1382 [sparkDriver-akka.actor.default-dispatcher-6] INFO  akka.remote.RemoteActorRefProvider$RemotingTerminator  - Remote daemon shut down; proceeding with flushing remote transports.
java.net.BindException: Failed to bind to: spark-master/192.168.0.191:0: Service 'sparkDriver' failed after 16 retries!
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:393)
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:389)
    at scala.util.Success$$anonfun$map$1.apply(Try.scala:206)
    at scala.util.Try$.apply(Try.scala:161)
    at scala.util.Success.map(Try.scala:206)
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
    at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)
    at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
    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)
1383 [sparkDriver-akka.actor.default-dispatcher-7] INFO  akka.remote.RemoteActorRefProvider$RemotingTerminator  - Remoting shut down.
1385 [delete Spark temp dirs] DEBUG org.apache.spark.util.Utils  - Shutdown hook called

感谢您的帮助!

【问题讨论】:

  • 这里的答案都没有帮助我,但令我惊讶的是,关闭 wifi 连接确实为我解决了这个问题。这实际上是那些烦人的解决方法之一!

标签: binding apache-spark runtime-error


【解决方案1】:

设置环境变量 SPARK_LOCAL_IP=127.0.0.1 为我解决了这个问题。

【讨论】:

  • 这也解决了我的问题。但这是因为笔记本电脑上的 ipv6
【解决方案2】:

当我的/etc/hosts 文件将错误的 IP 地址映射到我的本地主机名时,我遇到了这个问题。

您日志中的BindException 抱怨IP 地址192.168.0.191。我假设它解析为您机器的主机名,它不是您的网络接口正在使用的实际 IP 地址。一旦你修复它,它应该可以正常工作。

【讨论】:

    【解决方案3】:

    我的 EC2 实例中有 spark 工作。我启动了一个新的 Web 服务器,为了满足它的要求,我不得不将主机名更改为 ec2 公共 DNS 名称,即

    hostname ec2-54-xxx-xxx-xxx.compute-1.amazonaws.com
    

    之后我的火花无法工作并显示如下错误:

    16/09/20 21:02:22 WARN Utils:服务“sparkDriver”无法绑定到端口 0。尝试端口 1。 16/09/20 21:02:22 ERROR SparkContext: 初始化 SparkContext 时出错。

    我通过将 SPARK_LOCAL_IP 设置为如下解决它:

    export SPARK_LOCAL_IP="localhost"
    

    然后刚刚启动了闪亮的外壳,如下所示:

    $SPARK_HOME/bin/spark-shell
    

    【讨论】:

    • 很久以前我发布了这个问题,我想在此期间有些事情发生了变化以做出简单的解决方案。
    【解决方案4】:

    您的 master 可能在非默认端口上运行。你能发布你的提交命令吗? 看看https://spark.apache.org/docs/latest/spark-standalone.html#connecting-an-application-to-the-cluster

    【讨论】:

    • 我没有使用提交,我想用 IDE 来实现。提交工作正常,Master 设置为 spark://spark-master:7077
    • 我从IDE做的方式是创建一个conf对象并通过setMaster方法设置master。然后我使用 conf 对象创建火花上下文。我相信火花上下文是应用程序和集群之间的联系
    • 这正是我的做法,也是我得到上述错误的原因。
    • 没有,因为许可。但是,我可以发布 Main 类。
    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多