• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于容器技術的大數(shù)據(jù)在線實訓環(huán)境探索與實踐

    2021-07-13 03:18:34李世強
    信息記錄材料 2021年6期
    關鍵詞:管理工具鏡像開源

    李世強,周 游

    (黔南民族職業(yè)技術學院 貴州 黔南 558022)

    1 引言

    隨著信息技術和移動互聯(lián)網(wǎng)的迅速發(fā)展,大數(shù)據(jù)技術也得到了飛速發(fā)展,大數(shù)據(jù)專業(yè)如雨后春筍般出現(xiàn)在高校。大數(shù)據(jù)實訓環(huán)境要求比較復雜,需要的軟硬件資源相比較多,如搭建一個分布式Hadoop集群環(huán)境需要3~5臺機器,傳統(tǒng)做法是計算機中安裝VMWare Workstation 或Virtual Box等虛擬化軟件,通過創(chuàng)建多態(tài)虛擬機達到實驗要求環(huán)境。但是虛擬機對硬件資源要求比較高,通常1臺8G內(nèi)存的實訓主機上運行3~5臺虛擬機非常困難。此外,大數(shù)據(jù)實訓環(huán)境比較多,如Hadoop集群、Hive集群、Spark集群,大數(shù)據(jù)可視化集群等,由于實訓的復雜性,很難一次安裝完成,教學過程中會對實訓環(huán)境進行改動,由于實訓室大都安裝有還原系統(tǒng),每次改動代價很大。由于大數(shù)據(jù)實訓環(huán)境復雜、硬件需求高,很多學生無法在自己電腦上進行部署,實訓也就限制在了實訓室內(nèi),不利于學生學習。

    容器技術是一種伴隨著云計算而興起的技術,云時代一個不同于以前的特點就是很多資源和計算都放在服務器端,用戶通過網(wǎng)絡進行操作,對容器的操作都可以通過瀏覽器完成。容器技術的出現(xiàn)給大數(shù)據(jù)這種硬件要求高、搭建復雜的實訓提供了一種解決方案。本文利用Docker容器相關技術實現(xiàn)了一種在線實訓平臺。

    2 總體架構

    大數(shù)據(jù)在線實訓管理平臺硬件為5~10臺內(nèi)存為128 G服務器。操作系統(tǒng)為CentOS7,安裝有Docker-CE、Docker Composer,通過Docker Swarm搭建容器管理集群。實訓環(huán)境鏡像可以從Docker Hub獲取實驗基礎鏡像,通過Docker Registry搭建本地實訓鏡像庫,見圖1。

    圖1 大數(shù)據(jù)在線實訓管理平臺構架圖

    3 相關技術

    3.1 Docker容器技術

    Docker是一個開源的容器引擎,它有助于更快地交付應用。方便快捷已經(jīng)是Docker的最大優(yōu)勢,過去搭建環(huán)境需要用數(shù)天乃至數(shù)周,在Docker容器的處理下,只需要數(shù)秒就能完成。Docker具有三大核心概念:鏡像、容器和倉庫。鏡像是基于聯(lián)合文件系統(tǒng)的一種層式的結構,由一系列指令一步一步構建出來的。一個鏡像可以是一個完整的CentOS操作系統(tǒng)環(huán)境,稱為CentOS鏡像。也可以在CentOS基礎上安裝其他應用程序,制作成應用的鏡像。容器是鏡像創(chuàng)建的實例,可以啟動、停止并刪除。每個容器都是相互隔離的,不同容器中的程序不會產(chǎn)生影響。容器是一個動態(tài)的概念,而鏡像是一個相對靜止的概念。倉庫是用來保存鏡像的場所,分為公有和私有兩種[1]。

    用戶可以通過docker search命令來查找官方倉庫中的鏡像,然后使用docker pull命令來將它下載到本地[2]。

    根據(jù)是否是官方提供,可將鏡像資源分為兩類。一種是類似CentOS這樣的鏡像,被稱為基礎鏡像。這些基礎鏡像是由Docker公司創(chuàng)建、驗證、支持、提供的。這樣的鏡像往往使用單個單詞作為名字。還有一種類型,比如tianon/centos鏡像,它是由Docker的用戶創(chuàng)建并維護的,往往帶有用戶名稱前綴??梢酝ㄟ^前綴user_name/來指定使用某個用戶提供的鏡像,比如tianon用戶。

    用戶也可以在登錄后利用docker push命令來將鏡像推送到Docker Hub。

    3.2 Docker Compose技術

    當運行的應用如搭建Hadoop集群需要多個環(huán)境時,就需要用到Docker Compose,Docker Compose是用于定義和運行多容器Docker應用程序的工具。通過Compose,我們可以使用YML文件來配置應用程序需要的所有服務。然后,使用一個命令,就可以從YML文件配置中創(chuàng)建并啟動所有服務[3]。

    Compose使用的三個步驟:

    (1)使用Dockerfile定義應用程序的環(huán)境。

    (2)使用docker-compose.yml 定義構成應用程序的服務,這樣它們可以在隔離環(huán)境中一起運行。

    (3)最后,執(zhí)行docker-compose up命令來啟動并運行整個應用程序。

    3.3 注冊服務

    Docker Registry是一個容器鏡像注冊中心,是一個無狀態(tài)、高度可擴展的服務器端應用程序,用于存儲并分發(fā)Docker鏡像。它是開源,由Apache許可。Docker公司提供的官方Registry叫Docker Hub,是世界上最大的容器鏡像存儲庫,它里面的內(nèi)容來源很廣,包括容器社區(qū)開發(fā)人員、開源項目和獨立軟件供應商(ISV)提供的容器鏡像。用戶可以非常便捷地使用公共存儲庫中存儲、分享的容器鏡像,其中已經(jīng)包括了超過15,000+的鏡像。大數(shù)據(jù)實訓環(huán)境大部分鏡像,都可以通過在 Docker Hub中直接下載來實現(xiàn)。我們可以方便地使用大數(shù)據(jù)中用到的很多官方容器鏡像,如Ubuntu、CentOS、MongoDB、redis、postgres、nginx、MariaDB、hadoop、flink、storm等。通過使用官方鏡像,可以省去很多安裝時間,把精力投入到學習使用中??梢酝ㄟ^$ docker run --name flink_jobmanager -d -t flink jobmanager一條命令啟動一個flink任務管理器(主節(jié)點)。使用docker stack deploy -c dockercompose-v3.yml hadoop可以快速搭建一個擁有一個主節(jié)點、數(shù)據(jù)節(jié)點、資源管理器、節(jié)點管理器、歷史管理器的Hadoop集群[4]。

    Registry本身也是一個單獨的開源項目,任何人都可以在下載后自己部署一個Registry。使用它可以嚴格控制Docker鏡像存儲的位置,擁有完全屬于自己的Docker鏡像發(fā)送渠道。部署到本地,可節(jié)約從互聯(lián)網(wǎng)拉取鏡像的時間。

    假如我們在學校將一個軟件的運行環(huán)境制作成鏡像,并上傳到Registry中,這時就可以很方便地在家里的計算機上從Registry上下載并運行了。對Registry的操作也是與Docker完美融合的,用戶甚至不需要知道Registry的存在,只需要通過簡單的Docker命令就可以實現(xiàn)下載運行操作[5]。

    (1)搭建本地Registry

    docker run -d -p 5000:5000 --name registry registry:2

    (2)從共有倉庫拉取鏡像

    docker pull ubuntu

    (3)給鏡像添加指向私有倉庫標簽

    docker image tag ubuntu localhost:5000/myfirstimage

    (4)提交到倉庫

    docker push localhost:5000/myfirstimage

    (5)從私有倉庫拉去鏡像

    docker pull localhost:5000/myfirstimage

    3.4 容器集群管理

    容器集群管理工具主要有Docker Swarm和Kubernetes等。Docker Swarm是Docker原生自帶的集群管理工具;Kubernetes是谷歌項目下的容器編排工具。

    Docker Swarm集群模式原生態(tài)集成到Docker引擎中,它的學習成本低,學習了Docker基礎知識可以平滑過渡,里面的service服務可以滿足動態(tài)增減容器個數(shù),同時具備自身的負載均衡,Swarm管理著多臺設定保證了機器在出錯后有一個良好的容災機制。Kubernetes配置、搭建稍顯復雜,學習成本高,對應運維的成本相對高點。本文采用了Docker Swarm。

    Swarm集群由管理節(jié)點(manager)和工作節(jié)點(work node)構成。管理節(jié)點負責整個集群的管理工作包括集群配置、服務管理等所有跟集群有關的工作。工作節(jié)點負責運行業(yè)務容器。

    3.5 實訓環(huán)境管理工具

    Portainer管理工具是一款基于Docker環(huán)境的強大的開源管理工具,能讓我們輕松的構建、管理維護Docker環(huán)境,并且完全免費。這款管理工具還有許多插件能夠通過簡單的訂閱獲得,Portainer的核心功能能夠滿足任何規(guī)模組織基于docker環(huán)境的理想工具集合。可以說是容器管理的理想選擇。

    部署Portainer和Portainer代理來管理Swarm集群非常容易,可以直接在Docker集群中把Portainer部署成服務,這種部署方式會自動部署一個Portainer服務實例,并且在整個集群每個節(jié)點中部署一個Portainer代理。

    部署方式:

    $curl -L https://downloads.portainer.io/portaineragent-stack.yml -o portainer-agent-stack.yml

    $docker stack deploy --compose-file=portaineragent-stack.yml portainer

    此外,Portainer還提供HTTP API,Portainer UI就是通過Portainer API使用的,通過UI完成的事都可以通過HTTP API實現(xiàn)??梢酝ㄟ^ Docker API和Portainer API 開發(fā)更加個性化的管理工具。

    大數(shù)據(jù)在線使用平臺使用Portainer作為可視化管理工具可以方便的下載鏡像、啟動實訓環(huán)境。

    4 實訓環(huán)境創(chuàng)建實例

    (1)創(chuàng)建50個Linux實訓環(huán)境的命令如下:

    import os

    count=50

    for i in range(50):

    cmd='docker run -itd --name centosclass-'+str(i)+' centos:centos7.7.1908 /bin/bash'

    re = os.system(cmd)

    (2)搭建jupyter-notebook的pyspark數(shù)據(jù)分析可視化開發(fā)環(huán)境。

    docker run -d -p 8888:8888 -p 4040:4040 -p 4041:4041 jupyter/pyspark-notebook.

    編寫實例代碼測試:

    from pyspark.sql import SparkSession

    spark = SparkSession.builder.master('local').getOrCreate()sc = spark.sparkContext

    rdd = sc.parallelize(range(100 + 1))

    rdd.sum()

    (3)搭建Hadoop大數(shù)據(jù)集群。

    首先下載Hadoop集群的docker-compose-v3.yml文件,然后通過運行docker stack deploy -c dockercompose-v3.yml hadoop 就可以創(chuàng)建一個有一個主節(jié)點、一個數(shù)據(jù)節(jié)點、一個歷史服務、一個節(jié)點管理器、一個資源管理器的Hadoop集群。

    (4)搭建elasticsearch集群。

    下載elasticsearch的docker-compose.yml文件,運行如下命令啟動集群:

    docker-compose up

    大數(shù)據(jù)實訓環(huán)境創(chuàng)建可總結為以下幾步:

    (1)在docker hub上搜索用于實訓的公共的基礎鏡像。

    (2)根據(jù)基礎鏡像創(chuàng)建容器,進行個性化設置,然后保存為本地實訓鏡像。

    (3)編寫實訓環(huán)境批量創(chuàng)建腳本。

    (4)通過Portainer進行在線實訓。

    5 結語

    本文基于Docker容器技術及其相關開源軟件研究并實現(xiàn)Linux、Python、MySQL集群、Hadoop集群、ElasticSearch集群等大數(shù)據(jù)相關實訓課程的在線實訓平臺。該方法為大數(shù)據(jù)相關課程實訓提供了一種經(jīng)濟高效的在線實訓環(huán)境建設方案。這種方案打破了大數(shù)據(jù)實訓時間、地點的約束,學生不必只能跑到機房實訓。學生即使是在宿舍、在家,假期、甚至疫情期間都可以順利地進行實驗,因為在線實訓只要求學生擁有一臺可以上網(wǎng)的電腦,配置要求也不很高,因為實訓運行是在服務器端進行的。在線實訓環(huán)境不僅能減輕教師工作量,還能提高教學效果。通過在線實訓環(huán)境搭建可以更好地服務于大數(shù)據(jù)相關專業(yè)的學生,提升教師科研與技術創(chuàng)新能力。

    猜你喜歡
    管理工具鏡像開源
    質(zhì)量管理工具在減少CT停機天數(shù)中的應用
    鏡像
    當代黨員(2020年20期)2020-11-06 04:17:52
    面向Docker Compose多容器構建管理工具的設計與實現(xiàn)
    五毛錢能買多少頭牛
    鏡像
    小康(2018年23期)2018-08-23 06:18:52
    hosts文件管理工具
    大家說:開源、人工智能及創(chuàng)新
    開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
    開源計算機輔助翻譯工具研究
    鏡像
    小康(2015年4期)2015-03-31 14:57:40
    鲁山县| 江山市| 彭州市| 盐津县| SHOW| 马龙县| 新沂市| 桂东县| 连南| 平乐县| 白朗县| 申扎县| 普洱| 商洛市| 格尔木市| 仙居县| 枣庄市| 合川市| 常宁市| 绿春县| 名山县| 灌阳县| 新河县| 格尔木市| 沭阳县| 灵武市| 古丈县| 文成县| 南宫市| 永胜县| 宜黄县| 隆林| 泗水县| 大田县| 阿图什市| 揭东县| 庐江县| 防城港市| 汶上县| 阳信县| 东城区|