我有一个用于开发目的的小型群集设置,其中包含3个VM,所有VM上均安装了spark 2.3。我已经在VM1中启动了主机,而在其他2个Vms中启动了具有主机Ipaddress的从机。我们在所有3个Vms中都启用了防火墙,并在防火墙中打开了端口范围38001:38113
在启动虚拟机之前,我们需要完成以下配置。
Spark-default.conf文件添加了以下属性:
Spark-env.sh文件添加了以下属性:
当我们启动Spark-shell并执行示例csv文件读取时,在Worker上启动的执行程序正在从Spark驱动程序的随机端口开始。
例如:
Spark Executor命令:“ / 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“”-主机名“” 293.72.146.384“” --cores“” 4“” --app-id“” app-20180706072052-0000“” --worker-url“ “ spark://Worker@293.72.146.384:38112”
如您在上面的命令中看到的那样,执行程序以34573开始于Spark.driver.port。并且总是随机启动。因此,我的程序由于无法与驱动程序通信而失败。
任何人都可以通过此配置帮助我,该配置可用于在所有端口都被阻塞的网络紧密环境中执行。
谢谢。
答案 0 :(得分:0)
开始工作:
./ start-slave.sh spark:// hostname:port -p [Worker Port]
Options:
-c CORES, --cores CORES Number of cores to use
-m MEM, --memory MEM Amount of memory to use (e.g. 1000M, 2G)
-d DIR, --work-dir DIR Directory to run apps in (default: SPARK_HOME/work)
-i HOST, --ip IP Hostname to listen on (deprecated, please use --host or -h)
-h HOST, --host HOST Hostname to listen on
-p PORT, --port PORT Port to listen on (default: random)
--webui-port PORT Port for web UI (default: 8081)
--properties-file FILE Path to a custom Spark properties file.
Default is conf/spark-defaults.conf.