如何为紧密防火墙配置Apache Spark随机工作端口?

时间:2015-01-01 07:21:02

标签: configuration apache-spark worker ports

我正在使用Apache Spark来运行机器学习算法和其他大数据任务。以前,我在同一台机器上使用运行spark master和worker的spark cluster standalone模式。现在,我添加了多个工作机器,由于防火墙严密,我必须编辑worker的随机端口。任何人都可以帮助如何更改随机火花端口,并告诉我究竟需要编辑什么配置文件?我阅读了spark文档,并说它应该配置spark-defaults.conf但我不知道如何配置此文件以特别更改spark的随机端口。

2 个答案:

答案 0 :(得分:7)

点击https://spark.apache.org/docs/latest/configuration.html#networking

在" 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") 

答案 1 :(得分:5)

Spark 2.x的

更新


有些库已从头开始重写,许多遗留*.port属性现已过时(参见SPARK-10997 / SPARK-20605 / SPARK-12588 / SPARK-17678 /等)

例如,对于Spark 2.1,驱动程序将侦听执行程序流量的端口范围是

  • 介于spark.driver.portspark.driver.port + spark.port.maxRetries
  • 之间
  • 介于spark.driver.blockManager.portspark.driver.blockManager.port + spark.port.maxRetries
  • 之间

执行程序将侦听驱动程序流量和/或其他执行程序流量的端口范围是

  • 介于spark.blockManager.portspark.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