【问题标题】:Could not bind on a random free port error while trying to connect to spark master尝试连接到 spark master 时无法绑定随机可用端口错误
【发布时间】:2018-09-14 04:41:03
【问题描述】:

我有一个在亚马逊 ec2 上运行的 spark master。 我尝试使用 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

可能出了什么问题??

【问题讨论】:

  • 收到该消息后,我必须更新 /etc/hosts 以匹配更改的 DHCP 地址(在断电后的开发集群中)。

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


【解决方案1】:

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

pyspark -c spark.driver.bindAddress=127.0.0.1

【讨论】:

  • 我明白了 => java.io.IOException: 无法连接到 /192.168.1.2:63714。对此有什么想法吗?
  • 这可能意味着很多事情
【解决方案2】:

在创建 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

【讨论】:

  • 为我工作只需添加 .config("spark.driver.host", "127.0.0.1") \ .config("spark.driver.bindAddress", "127.0.0.1")
【解决方案3】:

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

通过以下步骤解决:

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

【讨论】:

    【解决方案4】:

    在具有独立 spark 集群的 MacOS 上,将 SPARK_MASTER_HOST 设置为 'localhost' 而不是 '127.0.0.1' 解决了我的问题。

    export SPARK_MASTER_HOST='localhost'

    【讨论】:

      猜你喜欢
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 2020-01-30
      • 2018-04-10
      • 2012-08-04
      • 2015-06-05
      相关资源
      最近更新 更多