最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用 Docker 部署 Spark 集群

 更新時間:2025年02月18日 11:59:44   作者:庫庫林_沙琪馬  
本文介紹了如何通過DockerCompose部署一個Spark集群,包括一個Master節(jié)點和多個Worker節(jié)點,環(huán)境要求包括DockerEngine、DockerCompose和網絡環(huán)境,通過配置docker-compose.yml文件,可以定義和運行多容器應用,感興趣的朋友一起看看吧

Apache Spark 是一個統(tǒng)一的分析引擎,用于大規(guī)模數據處理。使用 Docker 部署 Spark 集群是一種簡便且高效的方式。本文將詳細介紹如何通過 Docker Compose 部署一個 Spark 集群,包括一個 Master 節(jié)點和多個 Worker 節(jié)點。

環(huán)境要求

在開始部署之前,請確保以下環(huán)境已準備就緒:

  • Docker Engine:安裝并運行 Docker。
  • Docker Compose:安裝 Docker Compose,用于定義和運行多容器應用。
  • 網絡環(huán)境:確保主機可以連接到 Docker Hub 以下載鏡像。

Docker Compose 配置文件

以下是用于部署 Spark 集群的 docker-compose.yml 文件:

version: '3'
services:
  master:
    image: bitnami/spark:3.5.4
    container_name: master
    user: root
    environment:
      - SPARK_MODE=master
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no
      - 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
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no
    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
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no
    depends_on:
      - master
networks:
  default:
    driver: bridge

配置詳解

Master 節(jié)點配置

  • 鏡像:使用 bitnami/spark:3.5.4 鏡像。
  • 容器名稱:指定容器名稱為 master。
  • 用戶:以 root 用戶運行容器。
  • 環(huán)境變量
    • SPARK_MODE=master:指定節(jié)點模式為 Master。
    • SPARK_MASTER_WEBUI_PORT=8080:設置 Web UI 訪問端口。
    • SPARK_MASTER_PORT=7077:設置 Spark Master 通信端口。
  • 端口映射
    • 8080:8080:映射 Web UI 端口。
    • 7077:7077:映射 Spark Master 端口。
  • 卷掛載:將主機的 ./python 目錄掛載到容器的 /python 目錄。

Worker 節(jié)點配置

  • 鏡像:同樣使用 bitnami/spark:3.5.4 鏡像。
  • 容器名稱:分別指定為 worker1 和 worker2。
  • 用戶:以 root 用戶運行容器。
  • 環(huán)境變量
    • SPARK_MODE=worker:指定節(jié)點模式為 Worker。
    • SPARK_MASTER_URL=spark://master:7077:指定 Master 節(jié)點的 URL。
    • SPARK_WORKER_MEMORY=1G:配置 Worker 節(jié)點的內存。
    • SPARK_WORKER_CORES=1:配置 Worker 節(jié)點的 CPU 核數。
  • 依賴:指定 Worker 節(jié)點依賴 Master 節(jié)點,確保 Master 節(jié)點先啟動。

網絡配置

  • 使用橋接網絡,將所有容器連接到同一個網絡中,以便它們可以互相通信。

部署 Spark 集群

步驟 1:創(chuàng)建 Docker Compose 文件

將上述配置內容保存為 docker-compose.yml 文件。

步驟 2:構建并啟動容器

在終端中,進入包含 docker-compose.yml 文件的目錄,并運行以下命令:

docker compose up -d
  • up:構建并啟動容器。
  • -d:后臺運行。

步驟 3:驗證集群狀態(tài)

啟動容器后,可以通過以下方式驗證集群狀態(tài):

查看容器狀態(tài)

docker compose ps

預期輸出:

訪問 Spark Web UI

打開瀏覽器,訪問 http://{你的虛擬機Ip}:8080,即可看到 Spark Master 的 Web UI,顯示所有 Worker 節(jié)點的連接狀態(tài)。

驗證 Worker 節(jié)點連接

在 Web UI 中,導航到 http://{你的虛擬機Ip}:8080,檢查 "Workers" 標簽頁,應顯示 worker1 和 worker2 已連接。

步驟 4:運行 Spark 作業(yè)

為了驗證 Spark 集群的功能,可以運行一個簡單的 Spark 作業(yè)。以下是一個示例:

方法一:在 Master 容器內部運行 Spark 作業(yè)

進入 Master 容器

docker compose exec master bash

運行 Spark PI 示例:

/opt/bitnami/spark/bin/spark-shell --master spark://master:7077
或者
$SPARK_HOME/bin/spark-shell --master spark://master:7077

在 Spark Shell 中運行以下代碼:

val numSamples = 100000000
val count = sc.parallelize(1 to numSamples).count()
println(s"Pi is roughly ${count * 4.0 / numSamples}")

方法二:通過 Python 提交 Spark 作業(yè)

假設你有一個 Python 腳本 pi.py,內容如下:

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()

 將 pi.py 放在 ./python 目錄下,然后提交作業(yè):

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

運行結果:

步驟 5:停止和清理(注意,這個不是讓你測試的,看清楚)

完成測試后,可以停止并刪除容器:

docker compose down

總結

通過以上步驟,你已經成功使用 Docker 部署了一個 Spark 集群,包括一個 Master 節(jié)點和兩個 Worker 節(jié)點。這種部署方式具有以下優(yōu)勢:

  • 快速部署:通過 Docker Compose 一鍵式部署,無需手動配置每個節(jié)點。
  • 資源隔離:每個節(jié)點運行在獨立的容器中,資源分配清晰。
  • 易于擴展:可以輕松添加或刪除 Worker 節(jié)點以適應不同的工作負載。
  • 環(huán)境一致性:所有節(jié)點使用相同的 Spark 鏡像,確保環(huán)境一致。

你可以根據需要調整 docker-compose.yml 文件中的配置,例如增加 Worker 節(jié)點的數量、調整內存和 CPU 核數等。希望這篇文章能幫助你快速上手 Spark 集群的 Docker 部署!

到此這篇關于如何使用 Docker 部署 Spark 集群的文章就介紹到這了,更多相關Docker 部署 Spark 集群內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • CentOS7 Nvidia Docker環(huán)境搭建

    CentOS7 Nvidia Docker環(huán)境搭建

    本篇文章主要介紹了CentOS7 Nvidia Docker環(huán)境搭建,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 常用的8個應用和中間件的Docker運行示例詳解

    常用的8個應用和中間件的Docker運行示例詳解

    Portainer是一個輕量級的管理 UI ,可讓你輕松管理不同的 Docker 環(huán)境(Docker 主機或 Swarm 群集),這篇文章主要介紹了常用的8個應用和中間件的Docker運行示例,需要的朋友可以參考下
    2024-03-03
  • docker的一些基本指令

    docker的一些基本指令

    這篇文章主要介紹了docker的一些常用操作,幫助大家更好的理解和學習使用docker,感興趣的朋友可以了解下
    2021-04-04
  • deepin apt命令安裝最新版本的docker的方法

    deepin apt命令安裝最新版本的docker的方法

    這篇文章主要介紹了deepin apt命令安裝最新版本的docker的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • docker-compose部署mysql全過程

    docker-compose部署mysql全過程

    這篇文章主要介紹了docker-compose部署mysql全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2016-06-06
  • Win10系統(tǒng)使用docker部署ragflow的實現

    Win10系統(tǒng)使用docker部署ragflow的實現

    本文主要介紹了Win10系統(tǒng)使用docker部署ragflow的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-05-05
  • Docker部署mysql一主一從的操作方法

    Docker部署mysql一主一從的操作方法

    這篇文章主要介紹了Docker部署mysql一主一從,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • Docker中的容器文件拷貝及目錄掛載方式

    Docker中的容器文件拷貝及目錄掛載方式

    這篇文章主要介紹了Docker中的容器文件拷貝及目錄掛載方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker save和docker load的具體使用

    docker save和docker load的具體使用

    本文詳細介紹了docker save和docker load命令的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • 聊聊kubernetes1.20用containerd替換docker(shim)的問題

    聊聊kubernetes1.20用containerd替換docker(shim)的問題

    這篇文章主要介紹了kubernetes1.20用containerd替換docker(shim),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03

最新評論

三门峡市| 大庆市| 闽清县| 千阳县| 定陶县| 革吉县| 宁明县| 会东县| 永靖县| 六安市| 英吉沙县| 临城县| 英超| 淮北市| 彰武县| 鄯善县| 北流市| 桑植县| 南靖县| 余江县| 康乐县| 治县。| 大宁县| 思茅市| 山东省| 府谷县| 岳阳县| 华安县| 台东市| 辉县市| 曲周县| 耒阳市| 博野县| 东乡县| 阜新| 邵阳县| 青海省| 咸阳市| 金山区| 松潘县| 隆尧县|