以独立模式在主节点上启动多个工作程序

Posted

技术标签:

【中文标题】以独立模式在主节点上启动多个工作程序【英文标题】:Starting multiple workers on a master node in Standalone mode 【发布时间】:2020-01-28 20:45:33 【问题描述】:

我有一台 80 核的机器。我想在这台机器上以独立模式启动一个 Spark 服务器,它有 8 个执行器,每个执行器有 10 个核心。但是,当我尝试在 master 上启动我的第二个 worker 时,我得到了一个错误。

$ ./sbin/start-master.sh
Starting org.apache.spark.deploy.master.Master, logging to ...
$ ./sbin/start-slave.sh spark://localhost:7077 -c 10
Starting org.apache.spark.deploy.worker.Worker, logging to ...
$ ./sbin/start-slave.sh spark://localhost:7077 -c 10
org.apache.spark.deploy.worker.Worker running as process 64606.  Stop it first.

在documentation 中,它明确指出“您可以启动一个或多个worker 并通过:./sbin/start-slave.sh <master-spark-URL> 将它们连接到master”。那我为什么不能这样做呢?

【问题讨论】:

【参考方案1】:

在单机上,比较复杂,可以试试 docker 或者 Kubernetes。 为 spark 工作者创建多个 docker 容器。

【讨论】:

我是这么想的。单机是做不到的。文档只需要更清晰:)【参考方案2】:

获得相同并行度的一种方法是启动多个工作器。

您可以通过添加到 ./conf/spark-env.sh 文件来做到这一点:

SPARK_WORKER_INSTANCES=8
SPARK_WORKER_CORES=10
SPARK_EXECUTOR_CORES=10

【讨论】:

【参考方案3】:

只需为每个新的 worker/master 指定一个新的身份,然后启动 start-worker.sh

 export SPARK_IDENT_STRING=worker2
  ./spark-node2/sbin/start-worker.sh spark://DESKTOP-HSK5ETQ.localdomain:7077   

感谢https://***.com/a/46205968/1743724

【讨论】:

以上是关于以独立模式在主节点上启动多个工作程序的主要内容,如果未能解决你的问题,请参考以下文章

用idea调试Spark独立集群

第九课——redis集群

Spark 独立集群如何在工作节点上管理多个执行程序?

Spark 在具有多个应用程序的工作人员上运行了多少 JVM

在工作节点上安装 SPARK 模块

XRP节点部署