在 Debian Docker 中继 Kafka + Zookeeper 后安装 Spark

目录

一、Spark 与 Kafka 的 Docker 部署方案

1. 方案一:整合到一个 docker-compose.yml 文件

2. 方案二:使用单独的 docker-compose.yml

3. 关于 Zookeeper

4. 建议

二、分开部署 Spark

1. 创建目录结构

2. 创建配置文件

2.1. Spark配置文件

2.2. Prometheus配置文件

3. 创建 Docker Compose 配置

4. 启动服务

5. 备份与维护(可选)

5.1. 创建备份脚本

5.2.  创建更新脚本

5.3.  设置定期备份

6. 监控和报警设置

6.1. 初始化Grafana

6.2. 导入Spark监控仪表盘


一、Spark 与 Kafka 的 Docker 部署方案

对于已有的 Kafka+Zookeeper Docker 部署,现在想要添加 Spark,有两种主要方案:

1. 方案一:整合到一个 docker-compose.yml 文件

        优点: 集中管理所有相关服务; 简化网络配置 ;容易理解整个系统架构

        实现方式: 在已有的 docker-compose.yml 中添加 Spark 相关服务,例如:

version: '3'
services:
  zookeeper:
    # 你已有的 zookeeper 配置...
    
  kafka:
    # 你已有的 kafka 配置...
    
  spark-master:
    image: bitnami/spark:latest
    environment:
      - SPARK_MODE=master
    ports:
      - "8080:8080"
      - "7077:7077"
      
  spark-worker:
    image: bitnami/spark:latest
    environment:
      - SPARK_MODE=worker
      - SPARK_MASTER_URL=spark://spark-master:7077
    depends_on:
      - spark-master

2. 方案二:使用单独的 docker-compose.yml

        优点:服务职责更加清晰分离;更灵活地独立管理服务;避免单个配置文件过于庞大

        实现方式: 创建一个新的 docker-compose.yml 文件,专门用于 Spark:

version: '3'
services:
  spark-master:
    image: bitnami/spark:latest
    environment:
      - SPARK_MODE=master
    ports:
      - "8080:8080"
      - "7077:7077"
    networks:
      - spark-network
      - kafka-network  # 与 Kafka 网络连接
      
  spark-worker:
    image: bitnami/spark:latest
    environment:
      - SPARK_MODE=worker
      - SPARK_MASTER_URL=spark://spark-master:7077
    depends_on:
      - spark-master
    networks:
      - spark-network

networks:
  spark-network:
    driver: bridge
  kafka-network:
    external: true  # 使用 Kafka 的外部网络

3. 关于 Zookeeper

        不需要重复安装 Zookeeper。如果选择方案二(分开部署),Spark 可以通过 Docker 网络直接使用已有的 Zookeeper 实例。

        只需确保:(1)在 Kafka 的 docker-compose.yml 中为网络命名;(2)在 Spark 的配置中将该网络声明为 external 网络;(3)先启动包含 Zookeeper 和 Kafka 的 docker-compose,然后再启动包含 Spark 的 docker-compose。

4. 建议

        如果系统规模不大,建议使用方案一(单一 docker-compose 文件),这样更容易管理和理解整体架构。

        如果希望更灵活地管理不同服务,或者已经有一个非常复杂的 Kafka 设置,方案二可能更合适。

        无论哪种方案,确保在 Docker 网络配置上做好连接,让 Spark 能够访问 Kafka 和 Zookeeper。

二、分开部署 Spark

1. 创建目录结构

         目录结构如下:

# 个人开发环境 目录
~/dev/
  └── docker/ # spark-docker-compose.yml 相关配置
 
 
# 挂载目录
/data
  ├── spark/
  │    ├── data/ # /opt/bitnami/spark/data 的挂载目录
  │    │    ├── master/ # Spark Master节点
  │    │    ├── worker1/ # Spark Worker1节点
  │    │    └── worker2/ # Spark Worker2节点
  │    ├── conf/ # /opt/bitnami/spark/conf 的挂载目录
  │    │    ├── master/ # Spark Master节点
  │    │    ├── worker1/ # Spark Worker1节点
  │    │    └── worker2/ # Spark Worker2节点
  │    └── logs/ # /opt/bitnami/spark/logs 的挂载目录
  │         ├── master/ # Spark Master节点
  │         ├── 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值