• Docker-Compose构建spark集群


    0.前言

    知道我的兄弟朋友们可能知道,我最近工作中,我们老大叫我利用Docker构建大数据开发环境。今天真的十分开心,我利用Docker-Compose构建出Kafka-Spark-MySQL的云平台大数据开发环境,并利用自己撰写的spark streaming程序实现了实时数据的处理。
    本篇文章主要介绍利用Docker-Compose构建出Spark的运行环境,和前面的Kafka和MySQL相似,本次搭建的Spark集群还是采用Bitnami的镜像进行构建。

    1.单节点的Spark的构建

    下面是利用Docker-Compose构建的Spark的单节点,生产环境不建议这样配置。下面是单节点的配置文件

    version: '2'
    
    services:
      spark:
        image: docker.io/bitnami/spark:3.3
        ports:
          - '8080:8080'
        environment:
          - SPARK_RPC_AUTHENTICATION_ENABLED=no
          - SPARK_RPC_ENCRYPTION_ENABLED=no
          - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
          - SPARK_SSL_ENABLED=no
          - SPARK_MASTER_URL=spark://spark:7077
          - SPARK_WORKER_MEMORY=1G
          - SPARK_WORKER_CORES=1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2.Spark一主两从节点的构建

    2.1Docker-Compose配置文件

    下面是Spark一主两从的节点配置脚本

    version: '2'
    
    services:
      spark:
        image: docker.io/bitnami/spark:3.3
        environment:
          - SPARK_MODE=master
          - SPARK_RPC_AUTHENTICATION_ENABLED=no
          - SPARK_RPC_ENCRYPTION_ENABLED=no
          - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
          - SPARK_SSL_ENABLED=no
        ports:
          - '8080:8080'
      spark-worker-1:
        image: docker.io/bitnami/spark:3.3
        environment:
          - SPARK_MODE=worker
          - SPARK_MASTER_URL=spark://spark:7077
          - SPARK_WORKER_MEMORY=1G
          - SPARK_WORKER_CORES=1
          - SPARK_RPC_AUTHENTICATION_ENABLED=no
          - SPARK_RPC_ENCRYPTION_ENABLED=no
          - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
          - SPARK_SSL_ENABLED=no
      spark-worker-2:
        image: docker.io/bitnami/spark:3.3
        environment:
          - SPARK_MODE=worker
          - SPARK_MASTER_URL=spark://spark:7077
          - SPARK_WORKER_MEMORY=1G
          - SPARK_WORKER_CORES=1
          - SPARK_RPC_AUTHENTICATION_ENABLED=no
          - SPARK_RPC_ENCRYPTION_ENABLED=no
          - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
          - SPARK_SSL_ENABLED=no
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    2.2 环境配置参数

    下面是Spark集群搭建的一些可用变量:

    • SPARK_MODE:集群模式启动 Apache Spark。有效值:主值、辅助角色。默认值:master
    • SPARK_MASTER_URL:工作人员可以找到主节点的 URL。仅当spark模式为辅助角色时才需要。默认值:spark://spark-master:7077
    • SPARK_RPC_AUTHENTICATION_ENABLED:启用 RPC 身份验证。默认值:no
    • SPARK_RPC_AUTHENTICATION_SECRET:用于 RPC 身份验证的密钥。无默认值。
    • SPARK_RPC_ENCRYPTION_ENABLED:启用 RPC 加密。默认值:no
    • SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED:启用本地存储加密:默false
    • SPARK_SSL_ENABLED:启用 SSL 配置。默认值:
    • SPARK_SSL_KEY_PASSWORD:密钥存储中私钥的密码。无默认值。
    • SPARK_SSL_KEYSTORE_FILE:密钥存储的位置。默认值:/opt/bitnami/spark/conf/certs/spark-keystore.jks.
    • SPARK_SSL_KEYSTORE_PASSWORD:密钥存储的密码。无默认值
    • SPARK_SSL_TRUSTSTORE_PASSWORD:信任存储的密码。无默认值。
    • SPARK_SSL_TRUSTSTORE_FILE:密钥存储的位置。默认值:/opt/bitnami/spark/conf/certs/spark-truststore.jks.
    • SPARK_SSL_NEED_CLIENT_AUTH:是否需要客户端身份验证。默认值:是
    • SPARK_SSL_PROTOCOL:要使用的 TLS 协议。默认值:TLSv1.2
    • SPARK_DAEMON_USER:容器以 root 身份启动时的 Apache Spark 系统用户。默认值:spark
    • SPARK_DAEMON_GROUP:容器以 root 身份启动时,Apache Spark 系统组。默认值:spark
  • 相关阅读:
    Linux centos7创建文件
    【译】摇摆你的调试游戏:你需要知道的 Parallel Stack Window 小知识!
    JSP SSH毕业论文管理统myeclipse开发mysql数据库MVC模式java编程网页设计
    Matlab|基于改进遗传算法的配电网故障定位
    [极客大挑战 2019]EasySQL
    Flutter(学前必看)基础
    LeetCode | 876. Middle of the Linked List
    微服务SpringBoot 整合Redis 实现点赞、点赞排行榜
    前端实训DAY-5——移动适配:rem
    能与远方家人分享生活瞬间的网络相册
  • 原文地址:https://blog.csdn.net/m0_43405302/article/details/126254953