我在亚马逊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)设置为正确的绑定地址。
我尝试了这里描述的所有解决方案,但无济于事:
答案 0 :(得分:2)
将spark.driver.bindAddress
设置为您的本地IP,例如127.0.0.1
。
pyspark -c spark.driver.bindAddress=127.0.0.1
答案 1 :(得分:1)
我最近在Windows 10上遇到了类似的问题。
通过以下步骤解决了该问题:
答案 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