Apache spark 如果4040不可用,spark UI尝试下一个端口的次数
我们使用spark(使用2.1版)shell同时运行多个作业。从最近几天开始,我们不断地发现错误: 失败:org.spark-project.jetty.server。Server@5552479:java.net.BindException:地址已在使用中 在阅读了两个堆栈溢出后,我发现spark在默认情况下第一次尝试spark UI的4040端口,如果失败,它会尝试+1端口Apache spark 如果4040不可用,spark UI尝试下一个端口的次数,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我们使用spark(使用2.1版)shell同时运行多个作业。从最近几天开始,我们不断地发现错误: 失败:org.spark-project.jetty.server。Server@5552479:java.net.BindException:地址已在使用中 在阅读了两个堆栈溢出后,我发现spark在默认情况下第一次尝试spark UI的4040端口,如果失败,它会尝试+1端口 如果说4041也不可用,Spark会尝试多少次 根据和,我们可以提供默认设置为16的spark.port.maxR
- 如果说4041也不可用,Spark会尝试多少次李>
spark.port.maxRetries
配置,但是
- 此属性是应用于
还是仅应用于spark.ui.port
spark.driver.port
- spark如何决定它将为executor使用哪个端口?假设我有一个使用20个执行器的工作,那么spark如何决定这些执行器使用哪些端口呢?我们能控制吗
Cluster Manager负责获取获取执行器所需的资源,我认为我们无法控制它获取的端口。只要执行器能够在初始化端口上与驱动程序通信,就不会出现问题。群集管理器分配的所有执行器都可以看到此端口。所以如果maxRetires是16,如果已经启动了16个SparkContext,在其中一个退出之前,不能初始化新的sparkContext->对于每个spark驱动程序/作业,都有一个sparkContext,如果一个作业有10个执行器,它会使用下10个端口吗?spark.driver.port仅用于驱动程序,如果端口已被另一个sparkApplication占用,则会递增。现在对于执行器,spark.executor.port将基于maxRetries递增。这里有一些有用的链接,