【问题标题】:Exception: ERROR SparkContext - Error initializing local SparkContext. java.net.BindException异常:错误 SparkContext - 初始化本地 SparkContext 时出错。 java.net.BindException
【发布时间】:2017-08-31 18:45:41
【问题描述】:

我正在尝试为 spark 应用程序编写测试,但在尝试运行下一个测试时出现此异常

     class BasicIT {

      val sparkConf: SparkConf = new SparkConf().setAppName("basic.phase.it").setMaster("local[1]")
      var context:SparkContext = new SparkContext(sparkConf)
    @Test
    def myTest(): Unit = {
      print("test")
     }
    }

失败并出现此异常:

2016-07-24 21:04:39,956 [main,95] ERROR SparkContext - Error initializing SparkContext.
java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries!
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:485)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1089)
    at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:430)
    at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:415)
    at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:903)
    at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:198)
    at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:348)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
    at java.lang.Thread.run(Thread.java:745)

java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries!

目前在 OS x Yosemite 上使用 IntelliJ。

我做错了什么?以前工作的相同代码..

【问题讨论】:

    标签: scala testing intellij-idea apache-spark


    【解决方案1】:

    尝试使用 将 SPARK_LOCAL_IP="127.0.0.1" 导出到 load-spark-env.sh 或在运行 spark 应用程序之前设置 SPARK_LOCAL_IP="127.0.0.1"。它对我有用。

    【讨论】:

    • 是的,这就是答案,我已将其添加到 spark conf 中,谢谢!
    【解决方案2】:

    尝试添加 spark.driver.host 作为您的本地主机

    SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("AnyName").set("spark.driver.host", "localhost");
    

    【讨论】:

    • 为我工作。对于 sparkseesion: val spark = SparkSession .builder() .appName("spark2") .master("local") .config("spark.driver.host","localhost") .getOrCreate();
    【解决方案3】:

    您可能有更多的日志记录告诉您配置指定的 UI 端口已被使用。如果是这种情况,您需要将spark.ui.port 显式设置为某个值,您知道这将是主服务器上的可用端口。当特定端口不可用时,Spark 会尝试增加端口号。

    示例:

    val sparkConf = new SparkConf().setAppName("basic.phase.it")
                                   .setMaster("local[1]")
                                   .set("spark.ui.port", "4080");
    

    【讨论】:

    • 对我不起作用,我应该设置另一个参数吗?
    • “没用”不够具体。您在日志中看到了什么?
    • 这是一个致命的异常,但我敢肯定你有比这更多的日志记录,因为它被重试了 16 次
    • 请参考Link。这建议了许多尝试类似问题的选项。
    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 2021-02-05
    • 1970-01-01
    相关资源
    最近更新 更多