java.net.BindException:使用Google DataProc时已在使用的地址

时间:2015-12-28 09:05:41

标签: apache-spark google-cloud-dataproc

我刚刚使用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)

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

1 个答案:

答案 0 :(得分:3)

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