使用 Docker 部署 Apache Spark 集群的过程

 更新时间:2025年02月19日 09:13:32   作者:努力的小T  
本文介绍了如何使用Docker和DockerCompose快速部署一个包含一个Master节点和两个Worker节点的Spark集群,通过创建docker-compose.yml文件并执行相关命令,可以实现集群的构建和启动,感兴趣的朋友一起看看吧

简介

Apache Spark 是一个强大的统一分析引擎,用于大规模数据处理。本文将详细介绍如何使用 Docker 和 Docker Compose 快速部署一个包含一个 Master 节点和两个 Worker 节点的 Spark 集群。这种方法不仅简化了集群的搭建过程,还提供了资源隔离、易于扩展等优势。

前置条件

在开始之前,请确保你的环境中已经准备好了以下组件:

  • 安装并运行 Docker Engine。
  • 安装 Docker Compose,用于定义和运行多容器应用。
  • 主机能够连接到 Docker Hub 以下载所需的镜像。

Docker Compose 文件配置

创建 docker-compose.yml

首先,创建一个名为 docker-compose.yml 的文件,并添加如下内容:

version: '3'
services:
  master:
    image: bitnami/spark:3.5.4
    container_name: master
    user: root
    environment:
      - SPARK_MODE=master
      - SPARK_MASTER_WEBUI_PORT=8080
      - SPARK_MASTER_PORT=7077
    ports:
      - '8080:8080'
      - '7077:7077'
    volumes:
      - ./python:/python
  worker1:
    image: bitnami/spark:3.5.4
    container_name: worker1
    user: root
    environment:
      - SPARK_MODE=worker
      - SPARK_MASTER_URL=spark://master:7077
      - SPARK_WORKER_MEMORY=1G
      - SPARK_WORKER_CORES=1
    depends_on:
      - master
  worker2:
    image: bitnami/spark:3.5.4
    container_name: worker2
    user: root
    environment:
      - SPARK_MODE=worker
      - SPARK_MASTER_URL=spark://master:7077
      - SPARK_WORKER_MEMORY=1G
      - SPARK_WORKER_CORES=1
    depends_on:
      - master
networks:
  default:
    driver: bridge

启动 Spark 集群

进入保存 docker-compose.yml 文件的目录,执行以下命令启动集群:

docker compose up -d

这将构建并以后台模式启动所有容器。

验证集群状态

成功启动后,您可以通过浏览器访问 {您的虚拟机IP}:8080 查看 Spark Master 的 Web UI,确认 worker1worker2 是否已成功连接。

运行 Spark 作业

为了测试集群功能,可以提交一个简单的 Python 脚本 pi.py 计算圆周率 Pi 的近似值。脚本内容如下:

from pyspark.sql import SparkSession
if __name__ == "__main__":
    spark = SparkSession.builder.appName("Pi Calculator").getOrCreate()
    numSamples = 100000000
    count = spark.sparkContext.parallelize(range(1, numSamples)).count()
    print(f"Pi is roughly {4.0 * count / numSamples}")
    spark.stop()

将此脚本放置于 ./python 目录下,并通过以下命令提交作业:

docker-compose exec master /opt/bitnami/spark/bin/spark-submit --master spark://master:7077 /python/pi.py

结束语

通过上述步骤,您已经成功地使用 Docker 部署了一个包含一个 Master 节点和两个 Worker 节点的 Spark 集群。这种部署方式不仅快速便捷,而且便于根据需求调整配置(如增加 Worker 节点数量或调整资源配置)。希望这篇教程能帮助您快速上手 Spark 集群的 Docker 部署!

到此这篇关于使用 Docker 部署 Apache Spark 集群教程的文章就介绍到这了,更多相关Docker 部署 Apache Spark 集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Docker部署打包发布springboot项目

    使用Docker部署打包发布springboot项目

    本文主要介绍了使用Docker部署打包发布springboot项目,从安装docker到多种方式打包发布,编译,镜像,容器等问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Docker Desktop中安装MySQL并开启远程访问的详细教程

    Docker Desktop中安装MySQL并开启远程访问的详细教程

    本文主要介绍了在Docker Desktop中安装MySQL并开启远程访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • docker生命周期管理和镜像管理命令详解

    docker生命周期管理和镜像管理命令详解

    Docker通过容器技术提供了一种轻量级、快速部署和可移植的应用程序运行环境,极大地简化了应用程序的部署和管理过程,提高了开发和运维的效率,这篇文章主要介绍了docker生命周期管理和镜像管理命令,需要的朋友可以参考下
    2023-08-08
  • Docket Desktop安装redis并设置密码方式

    Docket Desktop安装redis并设置密码方式

    在DockerDesktop中安装Redis并设置密码的步骤包括启动Docker、拉取Redis镜像、创建并运行Redis容器设置密码、验证容器运行、连接并验证密码,以及可选的持久化数据设置
    2025-03-03
  • docker获取Let''s Encrypt永久免费SSL证书的方法

    docker获取Let''s Encrypt永久免费SSL证书的方法

    在本篇文章里小编给大家分享了一篇关于docker获取Let's Encrypt永久免费SSL证书的方法,以后需要的朋友们可以参考下。
    2021-01-01
  • Docker数据卷挂载方式

    Docker数据卷挂载方式

    文章介绍了Docker数据卷的作用和使用方法,包括数据卷的创建、查看、删除以及挂载,数据卷的主要优点是将数据与容器分离,解耦合,便于操作容器内的数据,保证数据安全,通过挂载数据卷,可以在宿主机上修改容器中的数据,并且可以方便地进行数据的复用和升级维护
    2024-12-12
  • 如何将gitbub下载的docker-compose项目运行在docker

    如何将gitbub下载的docker-compose项目运行在docker

    这篇文章主要介绍了如何将gitbub下载的docker-compose项目运行在docker问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Docker出现tag显示none镜像的处理方案

    Docker出现tag显示none镜像的处理方案

    本文介绍了Docker中出现REPOSITORY和TAG都显示为<none>的镜像,即悬挂镜像的原因,并提供了解决方法,包括查找和删除悬挂镜像,以及为它们指定新的标签
    2025-02-02
  • docker overlay实现跨主机的容器互通的方法

    docker overlay实现跨主机的容器互通的方法

    这篇文章主要介绍了docker overlay实现跨主机的容器互通,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • Docker部署MinIO镜像的方法(保姆级教程)

    Docker部署MinIO镜像的方法(保姆级教程)

    本文主要介绍了使用Docker部署MinIO镜像,包括创建挂载目录、运行MinIO容器的参数解析、使用Compose运行MinIO容器等,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12

最新评论