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

Ism*_*han 7 configuration ports worker apache-spark

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

key*_*int 7

点击这里https://spark.apache.org/docs/latest/configuration.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") 
Run Code Online (Sandbox Code Playgroud)


Sam*_*ter 7

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“配置端口”下