" />

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

Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法

 更新時間:2022年05月29日 15:52:03   作者:liedmirror  
本文主要介紹了Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、前言

在前文中,我們使用Docker-Compose完成了hdfs集群的構(gòu)建。本文將繼續(xù)使用Docker-Compose,實(shí)現(xiàn)Spark集群的搭建。

二、docker-compose.yml

對于Spark集群,我們采用一個mater節(jié)點(diǎn)和兩個worker節(jié)點(diǎn)進(jìn)行構(gòu)建。其中,所有的work節(jié)點(diǎn)均分配1一個core和 1GB的內(nèi)存。

Docker鏡像選擇了bitnami/spark的開源鏡像,選擇的spark版本為2.4.3,docker-compose配置如下:

  master:
    image: bitnami/spark:2.4.3
    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
    ports:
      - '8080:8080'
      - '7077:7077'
    volumes:
      - ./python:/python

  worker1:
    image: bitnami/spark:2.4.3
    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
  worker2:
    image: bitnami/spark:2.4.3
    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

在master節(jié)點(diǎn)中,也映射了一個/python目錄,用于存放pyspark代碼,方便運(yùn)行。

對于master節(jié)點(diǎn),暴露出7077端口和8080端口分別用于連接spark以及瀏覽器查看spark UI,在spark UI中,集群狀態(tài)如下圖(啟動后):

如果有需要,可以自行添加worker節(jié)點(diǎn),其中可以修改SPARK_WORKER_MEMORYSPARK_WORKER_CORES對節(jié)點(diǎn)分配的資源進(jìn)行修改。

對于該鏡像而言,默認(rèn)exec進(jìn)去是無用戶的,會導(dǎo)致一些安裝命令權(quán)限的不足,無法安裝。例如需要運(yùn)行pyspark,可能需要安裝numpy、pandas等庫,就無法使用pip完成安裝。而通過user: root就能設(shè)置默認(rèn)用戶為root用戶,避免上述問題。

三、啟動集群

同上文一樣,在docker-compose.yml的目錄下執(zhí)行docker-compose up -d命令,就能一鍵構(gòu)建集群(但是如果需要用到numpy等庫,還是需要自己到各節(jié)點(diǎn)內(nèi)進(jìn)行安裝)。

進(jìn)入master節(jié)點(diǎn)執(zhí)行spark-shell,成功進(jìn)入:

四、結(jié)合hdfs使用

將上文的Hadoop的docker-compose.yml與本次的結(jié)合,得到新的docker-compose.yml:

version: "1.0"
services:
  namenode:
    image: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8
    container_name: namenode
    ports:
      - 9870:9870
      - 9000:9000
    volumes:
      - ./hadoop/dfs/name:/hadoop/dfs/name
      - ./input:/input
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop.env

  datanode:
    image: bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8
    container_name: datanode
    depends_on:
      - namenode
    volumes:
      - ./hadoop/dfs/data:/hadoop/dfs/data
    environment:
      SERVICE_PRECONDITION: "namenode:9870"
    env_file:
      - ./hadoop.env
  
  resourcemanager:
    image: bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8
    container_name: resourcemanager
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864"
    env_file:
      - ./hadoop.env

  nodemanager1:
    image: bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8
    container_name: nodemanager
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
    env_file:
      - ./hadoop.env
  
  historyserver:
    image: bde2020/hadoop-historyserver:2.0.0-hadoop3.2.1-java8
    container_name: historyserver
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
    volumes:
      - ./hadoop/yarn/timeline:/hadoop/yarn/timeline
    env_file:
      - ./hadoop.env
    
  master:
    image: bitnami/spark:2.4.3-debian-9-r81
    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
    ports:
      - '8080:8080'
      - '7077:7077'
    volumes:
      - ./python:/python

  worker1:
    image: bitnami/spark:2.4.3-debian-9-r81
    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
  worker2:
    image: bitnami/spark:2.4.3-debian-9-r81
    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

運(yùn)行集群(還需要一個hadoop.env文件見上文)長這樣:

通過Docker容器的映射功能,將本地文件與spark集群的master節(jié)點(diǎn)的/python進(jìn)行了文件映射,編寫的pyspark通過映射可與容器中進(jìn)行同步,并通過docker exec指令,完成代碼執(zhí)行:

運(yùn)行了一個回歸程序,集群功能正常:

到此這篇關(guān)于Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Docker-Compose搭建Spark集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker Namespace容器隔離的實(shí)現(xiàn)

    Docker Namespace容器隔離的實(shí)現(xiàn)

    Namespace是Docker容器中的一種隔離機(jī)制,通過劃分資源獨(dú)立空間,確保容器之間互不干擾,本文主要介紹一下Docker Namespace容器隔離的實(shí)現(xiàn),感興趣的可以了解一下
    2024-11-11
  • docker運(yùn)行異構(gòu)鏡像詳解

    docker運(yùn)行異構(gòu)鏡像詳解

    介紹了在不同CPU架構(gòu)下運(yùn)行Docker鏡像時遇到的問題及解決方法,作者分享了由于銀行使用鯤鵬系統(tǒng)(ARM架構(gòu))導(dǎo)致Docker容器運(yùn)行失敗的經(jīng)歷,解決方法包括啟用`--platform`參數(shù)、安裝`qemu-user-static`及`binfmt_misc`
    2024-12-12
  • 超簡單實(shí)現(xiàn)Docker搭建個人博文系統(tǒng)

    超簡單實(shí)現(xiàn)Docker搭建個人博文系統(tǒng)

    這篇文章主要介紹了超簡單實(shí)現(xiàn)Docker搭建個人博文系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Docker中Dockerfile制作鏡像的方法步驟

    Docker中Dockerfile制作鏡像的方法步驟

    本文主要介紹了Dockerfile制作鏡像的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Mac OSX系統(tǒng) Docker啟用Docker遠(yuǎn)程API功能

    Mac OSX系統(tǒng) Docker啟用Docker遠(yuǎn)程API功能

    這篇文章主要介紹了Mac OSX系統(tǒng) Docker啟用Docker遠(yuǎn)程API功能的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • docker可視化工具Portainer部署并漢化的操作

    docker可視化工具Portainer部署并漢化的操作

    這篇文章主要介紹了docker可視化工具Portainer部署并漢化的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 如何通過Jenkins定期清理為None的鏡像詳解

    如何通過Jenkins定期清理為None的鏡像詳解

    這篇文章主要給大家介紹了關(guān)于如何通過Jenkins定期清理為None的鏡像的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • 淺談Docker 客戶端和守護(hù)進(jìn)程

    淺談Docker 客戶端和守護(hù)進(jìn)程

    這篇文章主要介紹了淺談Docker 客戶端和守護(hù)進(jìn)程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • docker Nginx PHP-FPM單機(jī)多站點(diǎn)布署的方法

    docker Nginx PHP-FPM單機(jī)多站點(diǎn)布署的方法

    這篇文章主要介紹了docker Nginx PHP-FPM單機(jī)多站點(diǎn)布署的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • docker容器如何優(yōu)雅的終止詳解

    docker容器如何優(yōu)雅的終止詳解

    最近公司在試驗(yàn)如何將項(xiàng)目部署到docker容器中去,這其中涉及到一個技術(shù)環(huán)節(jié),那就是如何讓docker容器優(yōu)雅的終止。所謂優(yōu)雅終止,指的就是程序在退出前有清理資源,保存必要中間狀態(tài),持久化內(nèi)存數(shù)據(jù)的機(jī)會。下面通過這篇大家一起由簡單到復(fù)雜逐一考量一下。
    2016-11-11

最新評論

阜新| 衡山县| 高阳县| 桃江县| 海阳市| 黄冈市| 黎城县| 淮阳县| 合作市| 台州市| 名山县| 阜新市| 柳江县| 治多县| 九台市| 辉县市| 哈密市| 临泉县| 连平县| 怀来县| 浙江省| 扶风县| 读书| 调兵山市| 龙泉市| 延庆县| 麻栗坡县| 双辽市| 林西县| 开封县| 凤山县| 剑阁县| 米脂县| 华阴市| 隆化县| 盐亭县| 盐池县| 海林市| 古交市| 五峰| 张家川|