以独立模式在主节点上启动多个工作程序
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
【讨论】:
以上是关于以独立模式在主节点上启动多个工作程序的主要内容,如果未能解决你的问题,请参考以下文章