我正在使用Apache Spark运行机器学习算法和其他大数据任务。之前,我在单独模式下使用Spark集群,在同一台机器上运行Spark主节点和工作节点。现在,我添加了多个工作节点,由于防火墙限制,我必须编辑工作节点的随机端口。请问有人可以告诉我如何更改Spark的随机端口,以及需要编辑哪个配置文件吗?我阅读了Spark文档,并表示spark-defaults.conf
应该进行配置,但我不知道如何为特别更改Spark的随机端口来配置此文件。
我正在使用Apache Spark运行机器学习算法和其他大数据任务。之前,我在单独模式下使用Spark集群,在同一台机器上运行Spark主节点和工作节点。现在,我添加了多个工作节点,由于防火墙限制,我必须编辑工作节点的随机端口。请问有人可以告诉我如何更改Spark的随机端口,以及需要编辑哪个配置文件吗?我阅读了Spark文档,并表示spark-defaults.conf
应该进行配置,但我不知道如何为特别更改Spark的随机端口来配置此文件。
Spark 2.x 更新
一些库已经从头开始重写,许多旧的*.port
属性现在已经过时 (详见 SPARK-10997 / SPARK-20605 / SPARK-12588 / SPARK-17678 等)
例如,对于 Spark 2.1,驱动程序将用于监听执行器流量的端口范围为:
spark.driver.port
和 spark.driver.port
+spark.port.maxRetries
之间spark.driver.blockManager.port
和 spark.driver.blockManager.port
+spark.port.maxRetries
之间执行器将用于监听驱动程序流量和/或其他执行器流量的端口范围为:
spark.blockManager.port
和 spark.blockManager.port
+spark.port.maxRetries
之间"maxRetries" 属性允许同时运行多个 Spark 作业;如果基础端口已被使用,则新作业将尝试下一个端口等等,除非整个范围已被使用。
来源:
https://spark.apache.org/docs/2.1.1/configuration.html#networking
https://spark.apache.org/docs/2.1.1/security.html(在“配置端口”下)
请在这里检查。
在“Networking”部分中,您可以看到一些端口默认情况下是随机的。您可以按照以下方式设置它们:
val conf = new SparkConf()
.setMaster(master)
.setAppName("namexxx")
.set("spark.driver.port", "51810")
.set("spark.fileserver.port", "51811")
.set("spark.broadcast.port", "51812")
.set("spark.replClassServer.port", "51813")
.set("spark.blockManager.port", "51814")
.set("spark.executor.port", "51815")