【问题标题】:java.net.BindException: Address already in use while using Google DataProcjava.net.BindException:使用 Google DataProc 时地址已在使用中
【发布时间】:2016-04-02 03:03:38
【问题描述】:

我刚刚使用 DataProc 在 Google Cloud 中设置了一个 Spark 集群,我正在尝试使用文档中指定的 gcutil 从我的本地计算机提交一个简单的 pyspark hello-world.py 作业 - https://cloud.google.com/dataproc/submit-job

gcloud beta dataproc jobs submit pyspark --cluster cluster-1 hello-world.py

但是,我收到以下错误:

15/12/28 08:54:53 WARN org.spark-project.jetty.util.component.AbstractLifeCycle: FAILED   SelectChannelConnector@0.0.0.0:4040: java.net.BindException: Address  already in use
java.net.BindException: Address already in use
    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 org.spark-project.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:187)
...
  py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:68)
   at py4j.GatewayConnection.run(GatewayConnection.java:207)
   at java.lang.Thread.run(Thread.java:745)

我只提交了一次这项工作,所以我很困惑为什么会收到这个错误。任何帮助将不胜感激。

【问题讨论】:

  • 我认为这只是警告日志。 Spark 会自动尝试另一个端口,您不必担心。

标签: apache-spark google-cloud-dataproc


【解决方案1】:

创建 spark 上下文时,默认情况下会在 4040 处启动应用程序 UI 端口。当 UI 启动时,它会检查它是否正在使用,如果是,它应该增加到 4041。看起来你在端口 4040 上运行了一些东西。应用程序应向您显示警告,然后尝试在 4041 上启动 UI。

【讨论】:

  • @femibyte 如果您不想看到警告堆栈跟踪,您可以在位于的属性文件中将 Jetty (log4j.logger.org.eclipse.jetty) 的日志级别从 WARN 修改为 ERROR在 $SPARK_HOME/conf/log4j.properties 中。
猜你喜欢
  • 1970-01-01
  • 2015-10-30
  • 2014-08-11
  • 2013-09-08
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
相关资源
最近更新 更多