亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2021-07-13 03:18:34李世強(qiáng)
        信息記錄材料 2021年6期
        關(guān)鍵詞:實(shí)訓(xùn)環(huán)境

        李世強(qiáng),周 游

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

        1 引言

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

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

        2 總體架構(gòu)

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

        圖1 大數(shù)據(jù)在線實(shí)訓(xùn)管理平臺(tái)構(gòu)架圖

        3 相關(guān)技術(shù)

        3.1 Docker容器技術(shù)

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

        用戶(hù)可以通過(guò)docker search命令來(lái)查找官方倉(cāng)庫(kù)中的鏡像,然后使用docker pull命令來(lái)將它下載到本地[2]。

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

        用戶(hù)也可以在登錄后利用docker push命令來(lái)將鏡像推送到Docker Hub。

        3.2 Docker Compose技術(shù)

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

        Compose使用的三個(gè)步驟:

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

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

        (3)最后,執(zhí)行docker-compose up命令來(lái)啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序。

        3.3 注冊(cè)服務(wù)

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

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

        假如我們?cè)趯W(xué)校將一個(gè)軟件的運(yùn)行環(huán)境制作成鏡像,并上傳到Registry中,這時(shí)就可以很方便地在家里的計(jì)算機(jī)上從Registry上下載并運(yùn)行了。對(duì)Registry的操作也是與Docker完美融合的,用戶(hù)甚至不需要知道Registry的存在,只需要通過(guò)簡(jiǎn)單的Docker命令就可以實(shí)現(xiàn)下載運(yùn)行操作[5]。

        (1)搭建本地Registry

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

        (2)從共有倉(cāng)庫(kù)拉取鏡像

        docker pull ubuntu

        (3)給鏡像添加指向私有倉(cāng)庫(kù)標(biāo)簽

        docker image tag ubuntu localhost:5000/myfirstimage

        (4)提交到倉(cāng)庫(kù)

        docker push localhost:5000/myfirstimage

        (5)從私有倉(cāng)庫(kù)拉去鏡像

        docker pull localhost:5000/myfirstimage

        3.4 容器集群管理

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

        Docker Swarm集群模式原生態(tài)集成到Docker引擎中,它的學(xué)習(xí)成本低,學(xué)習(xí)了Docker基礎(chǔ)知識(shí)可以平滑過(guò)渡,里面的service服務(wù)可以滿(mǎn)足動(dòng)態(tài)增減容器個(gè)數(shù),同時(shí)具備自身的負(fù)載均衡,Swarm管理著多臺(tái)設(shè)定保證了機(jī)器在出錯(cuò)后有一個(gè)良好的容災(zāi)機(jī)制。Kubernetes配置、搭建稍顯復(fù)雜,學(xué)習(xí)成本高,對(duì)應(yīng)運(yùn)維的成本相對(duì)高點(diǎn)。本文采用了Docker Swarm。

        Swarm集群由管理節(jié)點(diǎn)(manager)和工作節(jié)點(diǎn)(work node)構(gòu)成。管理節(jié)點(diǎn)負(fù)責(zé)整個(gè)集群的管理工作包括集群配置、服務(wù)管理等所有跟集群有關(guān)的工作。工作節(jié)點(diǎn)負(fù)責(zé)運(yùn)行業(yè)務(wù)容器。

        3.5 實(shí)訓(xùn)環(huán)境管理工具

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

        部署Portainer和Portainer代理來(lái)管理Swarm集群非常容易,可以直接在Docker集群中把Portainer部署成服務(wù),這種部署方式會(huì)自動(dòng)部署一個(gè)Portainer服務(wù)實(shí)例,并且在整個(gè)集群每個(gè)節(jié)點(diǎn)中部署一個(gè)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就是通過(guò)Portainer API使用的,通過(guò)UI完成的事都可以通過(guò)HTTP API實(shí)現(xiàn)??梢酝ㄟ^(guò) Docker API和Portainer API 開(kāi)發(fā)更加個(gè)性化的管理工具。

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

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

        (1)創(chuàng)建50個(gè)Linux實(shí)訓(xùn)環(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ù)分析可視化開(kāi)發(fā)環(huán)境。

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

        編寫(xiě)實(shí)例代碼測(cè)試:

        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文件,然后通過(guò)運(yùn)行docker stack deploy -c dockercompose-v3.yml hadoop 就可以創(chuàng)建一個(gè)有一個(gè)主節(jié)點(diǎn)、一個(gè)數(shù)據(jù)節(jié)點(diǎn)、一個(gè)歷史服務(wù)、一個(gè)節(jié)點(diǎn)管理器、一個(gè)資源管理器的Hadoop集群。

        (4)搭建elasticsearch集群。

        下載elasticsearch的docker-compose.yml文件,運(yùn)行如下命令啟動(dòng)集群:

        docker-compose up

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

        (1)在docker hub上搜索用于實(shí)訓(xùn)的公共的基礎(chǔ)鏡像。

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

        (3)編寫(xiě)實(shí)訓(xùn)環(huán)境批量創(chuàng)建腳本。

        (4)通過(guò)Portainer進(jìn)行在線實(shí)訓(xùn)。

        5 結(jié)語(yǔ)

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

        猜你喜歡
        實(shí)訓(xùn)環(huán)境
        長(zhǎng)期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
        一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
        基于CDIO理念的數(shù)控實(shí)訓(xùn)教學(xué)改革與實(shí)踐
        孕期遠(yuǎn)離容易致畸的環(huán)境
        不能改變環(huán)境,那就改變心境
        8S管理模式在數(shù)控實(shí)訓(xùn)教學(xué)中的實(shí)踐與研究
        環(huán)境
        孕期遠(yuǎn)離容易致畸的環(huán)境
        虛擬情景實(shí)訓(xùn)環(huán)境三維模擬
        電工電子實(shí)訓(xùn)教學(xué)改革與創(chuàng)新
        電子制作(2017年8期)2017-06-05 09:36:15
        韩国无码精品人妻一区二| 48沈阳熟女高潮嗷嗷叫| 美女大量吞精在线观看456| 精品久久久久久电影院| 美女被强吻并脱下胸罩内裤视频| 日本饥渴人妻欲求不满| 暖暖视频在线观看免费| 亚洲Av午夜精品a区| 白白色青青草视频免费观看| 在线观看一级黄片天堂| 无码ol丝袜高跟秘书在线观看| 国产免费AV片在线看| 色婷婷av一区二区三区不卡| 日本国产亚洲一区二区| 欧美精品人人做人人爱视频| 国产福利片无码区在线观看| 亚洲国产天堂av成人在线播放| 欧美性猛交xxxx乱大交极品| 日产国产精品亚洲系列| 日本久久精品免费播放| 亚洲精品大全中文字幕| 粗大的内捧猛烈进出少妇| 美女大量吞精在线观看456 | 亚洲码国产精品高潮在线| 久久久久久人妻精品一区百度网盘| 国产成年女人特黄特色毛片免| 亚洲成人av一二三四区| 人妻少妇精品专区性色av| 成人无码网www在线观看| 国产精品亚洲综合久久系列| 国产内射爽爽大片视频社区在线| 看黄网站在线| 亚洲美女av二区在线观看| 国产午夜在线视频观看 | 风流少妇又紧又爽又丰满| 97国产精品麻豆性色| 免费久久99精品国产| 永久免费av无码网站yy| 2017天天爽夜夜爽精品视频| 国内偷拍国内精品多白86| www射我里面在线观看|