setup spark standalone pseudo cluster
部署一个Spark Standalone集群,使用Docker Compose编排到三台物理机上,每台机器运行Zookeeper和Spark的master及worker节点,并采用宿主机网络和共享存储方案(如S3或NFS)进行数据持久化和依赖管理。 2025-5-26 06:9:19 Author: dyrnq.com(查看原文) 阅读量:14 收藏

最近考虑要一个运行在单机上的spark standalone cluster(使用docker-compose编排到多个容器)分散到多个物理机上,考虑到机器不够,准备还是用pseudo cluster部署,

部署

大概3台物理机,考虑到后续扩展,也可以后续增加更多物理节点

  • 192.168.6.155
  • 192.168.6.156
  • 192.168.6.157
IP 用途
6.155 zookeeper集群/zoo1 spark cluster/master1+worker1+worker4
6.156 zookeeper集群/zoo2 spark cluster/master2+worker2+worker5
6.157 zookeeper集群/zoo3 spark cluster/master3+worker3+worker6
其他 spark cluster/+worker8+worker9+worker10

1、使用docker run启动相应服务,镜像使用apache/spark:3.5.4-scala2.12-java11-python3-ubuntu
2、由于注册到worker跨机器了,所以采用--network host直接使用宿主机网络,那么这样就需要躲避端口重复
3、由于可能不基于HDFS,那么需要考虑采用其他共享存储,比如Mounting S3 Bucket as a Filesystem in Linux or NFS client
4、将必要存储挂载到宿主机,便于持久化
5、采用一个共享的maven repository用于第三方依赖管理,这个目录挂载给每个spark容器,执行一次mvn dependency:get -Dartifact=org.apache.kafka:kafka-clients:3.8.1即可共享到每个容器中

    docker run \
    -d \
    --restart=always \
    --network host \
    --name=zknavigator \
    --hostname=zknavigator \
    -e HTTP_PORT=39000 \
    elkozmon/zoonavigator:latest

ref


文章来源: https://dyrnq.com/setup-spark-standalone-pseudo-cluster/
如有侵权请联系:admin#unsafe.sh