问题:
FAILED SwlectChannelConnector@0.0.0.0:4040: java.net.BindException: Address already in use ... ERROR SparkUI: Failed to bind SparkUIjava.net.BindException:Address already in use:Service 'SparkUI' failed after 16 retries!
原因:
SPark创建Context时,会使用默认端口4040作为SparkUI端口,如果遇到端口被占用,则抛出异常;接着会采用累加的方式继续尝试后面的端口号;如果重试的次数超过默认值16次,则会导致任务失败。
这种情况的发生是因为在同一台机器上有多个进程都在使用Spark,占用了4040端口;或者是其它运行的应用程序占用了。
解决方法:
- 初始化SparkConf时,添加conf.set("spark.port.maxRetries","100");
- 使用spark-submit提交任务时,在命令行中添加-Dspark.port.maxRetries=100或者--conf spark.port.maxRetries="100";
- 在spark-default.conf中添加spark.port.maxRetries 100;
- spark.ui.port配置项指定具体端口。不推荐
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)