尝试连接到spark master

时间:2018-04-04 14:46:45

标签: python-3.x apache-spark amazon-ec2 pyspark

我在亚马逊ec2上运行了一个火花大师。 我尝试使用pyspark连接到另一个ec2实例,如下所示:

spark = SparkSession.builder.appName("MyApp") \
                            .master("spark_url_as_obtained_in_web_ui") \
                            .getOrCreate()

以下是错误:

  

要调整日志记录级别,请使用sc.setLogLevel(newLevel)。对于SparkR,请使用setLogLevel(newLevel)。

     

2018-04-04 20:03:04 WARN Utils:66 - 服务'sparkDriver'无法绑定在随机空闲端口上。您可以检查是否配置了合适的绑定地址。

     

............

     

java.net.BindException:无法分配请求的地址:服务'sparkDriver'在16次重试后失败(在随机空闲端口上)!考虑明确地将服务'sparkDriver'的适当绑定地址(例如SparkDriver的spark.driver.bindAddress)设置为正确的绑定地址。

我尝试了这里描述的所有解决方案,但无济于事:

  1. Connecting to a remote Spark master - Java / Scala

  2. All masters are unresponsive ! ? Spark master is not responding with datastax architecture

  3. Spark Standalone Cluster - Slave not connecting to Master

  4. Spark master-machine:7077 not reachable

  5. spark submit "Service 'Driver' could not bind on port" error

  6. https://community.hortonworks.com/questions/8257/how-can-i-resolve-it.html

  7. 可能出现什么问题?

3 个答案:

答案 0 :(得分:2)

spark.driver.bindAddress设置为您的本地IP,例如127.0.0.1

pyspark -c spark.driver.bindAddress=127.0.0.1

答案 1 :(得分:1)

我最近在Windows 10上遇到了类似的问题。

通过以下步骤解决了该问题:

  • 通过设置用户环境变量SPARK_LOCAL_IP = 127.0.0.1修复了该问题
  • 以管理员身份重新启动命令行

答案 2 :(得分:0)

在创建Spark会话时,请设置以下配置

spark =SparkSession.builder.appName(str(name))\
      .master("local[*]").config("spark.driver.memory","5g")\
      .config("spark.driver.host","10.51.4.110")\ #Machine ip
      .config("spark.driver.bindAddress","10.51.4.110")\ #Machine ip
      .getOrCreate()

有时除了绑定地址,我们还需要设置主机地址。在我的情况下,系统主机地址更改为系统名称。 Spark显示超时错误。然后将主机和绑定地址设置为相同。效果很好

* 10.51.4.110-本地计算机IP