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

Configuration 如何为紧凑型防火墙配置Apache Spark随机工作端口?,configuration,apache-spark,worker,ports,Configuration,Apache Spark,Worker,Ports,我正在使用ApacheSpark运行机器学习算法和其他大数据任务。以前,我使用spark cluster独立模式在同一台机器上运行spark master和worker。现在,我添加了多个工作者机器,由于防火墙很紧,我必须编辑工作者的随机端口。有人能帮我更改随机火花端口,并告诉我需要编辑的配置文件吗?我阅读了spark文档,它说应该配置spark defaults.conf,但我不知道如何配置该文件,以便特别更改spark的随机端口。检查这里 在“网络”部分,您可以看到一些端口默认为随机端口。您

我正在使用ApacheSpark运行机器学习算法和其他大数据任务。以前,我使用spark cluster独立模式在同一台机器上运行spark master和worker。现在,我添加了多个工作者机器,由于防火墙很紧,我必须编辑工作者的随机端口。有人能帮我更改随机火花端口,并告诉我需要编辑的配置文件吗?我阅读了spark文档,它说应该配置
spark defaults.conf
,但我不知道如何配置该文件,以便特别更改spark的随机端口。

检查这里

在“网络”部分,您可以看到一些端口默认为随机端口。您可以将其设置为您的选择,如下所示:

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") 
更新Spark 2.x

一些库已经从头重写,许多传统的
*。端口属性现在已经过时(参见SPARK-10997/SPARK-20605/SPARK-12588/SPARK-17678/etc)

例如,对于Spark 2.1,驱动程序将侦听executor通信的端口范围为

  • 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作业;如果已使用基本端口,则新作业将尝试下一个作业,以此类推,除非已使用整个范围

来源:


在“配置端口”下

问题:为什么要指定executor端口?此值不是工作端口的值吗?(请参阅)据我所知,一个工人可以有多个执行者,而驱动程序进程正在将任务分配给执行者。他们通过tcp协议和端口号进行通信。我指定了端口,以便防火墙不会阻止通信,因为默认情况下,防火墙会阻止可疑端口。但驱动程序不需要打开spark.executor.port,它会连接到spark.executor.port(在工作程序上)?据我所知,端口只是驱动程序和执行程序用来通信的隧道,他们侦听其开放端口以获取传入消息…警告:自Spark 2.0起,这些属性中的大多数已被弃用,因为驱动程序/执行程序通信已被重构…这个问题是否更适合serverfault.com,因为它似乎是一个配置问题,而不是编程问题?