我正在尝试使用命令
打开spark$ spark-shell
但得到警告。如何解决它。
警告:
WARN util.Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
答案 0 :(得分:5)
您可以在命令提示符下运行时随时更改的Spark端口
[hadoop @ localhost~] $ spark-shell --conf spark.ui.port = 4041
默认情况下,spark会进入4040
答案 1 :(得分:1)
默认情况下,Spark会尝试绑定端口4040。 在你的情况下,4040已经有一个火花过程在运行。
以下消息不是错误,因为spark将在端口4041上运行:
WARN util.Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
每个SparkContext默认在端口4040上启动Web UI 显示有关应用程序的有用信息。这包括:
如果多个SparkContexts在同一主机上运行,它们将绑定到连续的端口 从4040(4041,4042等)开始。
答案 2 :(得分:0)
先前的答案也帮助我开始了工作。在进一步研究中,我发现spark进行了16次尝试以自动分配端口。 Refer to Spark Documentation
一件好事是spark还建议如何配置一个新的未使用的端口并启动该端口的spark shell
java.net.BindException: Address already in use: Service 'SparkUI' failed after 16 retries (starting from 4040)! Consider explicitly setting the appropriate port for the service 'SparkUI' (**for example spark.ui.port for SparkUI**) to an available port or increasing spark.port.maxRetries.