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

Starting multiple workers on a master node in Standalone mode

我有一台 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中,明确表示"you can start one or more workers and connect them to the master via: ./sbin/start-slave.sh <master-spark-URL>"。那么为什么我不能那样做呢?

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

获得相同并行度的一种方法是启动许多 worker。

您可以通过将以下内容添加到 ./conf/spark-env.sh 文件来执行此操作:

SPARK_WORKER_INSTANCES=8
SPARK_WORKER_CORES=10
SPARK_EXECUTOR_CORES=10

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

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

感谢