【发布时间】:2018-10-04 07:35:38
【问题描述】:
我有一个小型集群设置用于我的开发目的,其中包含 3 个 VM,所有 VM 上都安装了 spark 2.3。我已经在 VM1 中启动了主服务器,在其他 2 个 Vms 中启动了具有主 IP 地址的从服务器。我们在所有 3 个虚拟机中都设置了防火墙,并在防火墙中打开了 38001:38113 的端口范围
在启动虚拟机之前,我们已经完成了以下配置。
在 Master、Worker 1 和 Worker 2 节点中
Spark-default.conf 文件添加了以下属性:
- spark.blockManager.port 38001
- spark.broadcast.port 38018
- spark.driver.port 38035
- spark.executor.port 38052
- spark.fileserver.port 38069
- spark.replClassServer.port 38086
- spark.shuffle.service.port 38103
在 Worker 1 和 Worker 2 节点中
Spark-env.sh 文件添加了以下属性:
- SPARK_WORKER_PORT=38112 -- 用于工人 1
- SPARK_WORKER_PORT=38113 -- 用于 worker-2
当我们启动 Spark-shell 并执行读取的示例 csv 文件时,在 Worker 上启动的执行器以用于 spark 驱动程序的随机端口开始。
例如:
Spark 执行器命令:“/usr/java/jdk1.8.0_171-amd64/jre/bin/java” “-cp” “/opt/spark/2.3.0/conf/:/opt/spark/2.3. 0/jars/*" "-Xmx1024M" "-Dspark.driver.port=34573" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "--driver-url" "spark://CoarseGrainedScheduler@293.72.254.89:34573 " "--executor-id" "1" "--hostname" "293.72.146.384" "--cores" "4" "--app-id" "app-20180706072052-0000" "--worker-url" "spark://Worker@293.72.146.384:38112"
正如您在上面的命令中看到的那样,执行程序以 Spark.driver.port 和 34573 启动。这始终是随机启动的。因此,我的程序因无法与驱动程序通信而失败。
任何人都可以帮助我进行此配置,该配置可用于在所有端口都被阻止的网络紧密环境中执行。
提前致谢。
【问题讨论】:
-
您从哪里选择的属性列表?自 Spark 1.6 或 Spark 2.0 以来,大多数已被弃用...参见。 stackoverflow.com/questions/27729010/…
标签: apache-spark