999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Docker容器的多節(jié)點Hadoop集群快速部署方案

2022-10-20 03:40:58秦黃劉曉娟李滿劉曉莉
現(xiàn)代信息科技 2022年13期
關(guān)鍵詞:環(huán)境

秦黃,劉曉娟,李滿,劉曉莉

(廣州工商學(xué)院,廣東 廣州 518200)

0 引 言

近年來,大數(shù)據(jù)產(chǎn)業(yè)得到了大力發(fā)展,數(shù)據(jù)不再是一串冰冷的數(shù)字,越來越多的企業(yè)開始重視數(shù)據(jù),大學(xué)也開始普及數(shù)據(jù)科學(xué)和大數(shù)據(jù)專業(yè)。Hadoop 是Apache 開源基金會開發(fā)的分布式系統(tǒng),由HDFS 和YARM 組成。Hadoop 是采用Java 語言開發(fā)的分散計算平臺,適用于大數(shù)據(jù)領(lǐng)域的分布式存儲和計算,是當前廣泛使用的大數(shù)據(jù)計算工具。

Hadoop 在大數(shù)據(jù)領(lǐng)域中具有舉足輕重的地位,是研究大數(shù)據(jù)技術(shù)的基石。從某種程度上說,一個人對Hadoop 基礎(chǔ)知識掌握的扎實與否決定其在大數(shù)據(jù)技術(shù)道路上能走多遠。在生成環(huán)境下或者是學(xué)習(xí)大數(shù)據(jù)的過程中,經(jīng)常會遇到因使用場景的不同而應(yīng)用不同集群配置的情況,若采用傳統(tǒng)的部署方式需要進行很多煩瑣重復(fù)的工作,會加大時間成本和生產(chǎn)成本。隨著數(shù)據(jù)量的不斷增大,原有DataNode 節(jié)點的容量已經(jīng)不能滿足數(shù)據(jù)存儲的需求,需要在原有集群基礎(chǔ)上動態(tài)添加新的數(shù)據(jù)節(jié)點,但是傳統(tǒng)的擴容方式過程煩瑣且容易出錯。

為了實現(xiàn)Hadoop 集群上多節(jié)點的快速搭建和便捷的擴容縮容,在本文中我們提出一種基于Docker 容器快速構(gòu)建多節(jié)點Hadoop 集群的引入方案。

1 容器虛擬化技術(shù)

現(xiàn)有的虛擬化技術(shù)包含容器虛擬化與服務(wù)器虛擬化,二者的目標是相通的,目的都是為應(yīng)用程序建立一個孤立環(huán)境,但容器虛擬化技術(shù)與服務(wù)器虛擬化相比更為輕量。

這是由于服務(wù)器虛擬化技術(shù)是從操作系統(tǒng)層下手,不像傳統(tǒng)的虛擬機技術(shù)那樣虛擬出一套硬件驅(qū)動后,在其上運行一個完整的操作系統(tǒng),對用戶來說相當于使用物理性質(zhì)的虛擬機。而容器虛擬化技術(shù)則不同,它與宿主機共用內(nèi)核,直接將一個應(yīng)用程序及其所運行的環(huán)境依賴打包成鏡像。為了與服務(wù)器虛擬化技術(shù)產(chǎn)生的虛擬機區(qū)分開來,容器技術(shù)產(chǎn)生的環(huán)境就稱為容器。容器技術(shù)的輕量,具體體現(xiàn)為所建立的容器用不上1 分鐘甚至幾秒鐘內(nèi)就可以啟用,遠比需要數(shù)分鐘甚至幾十分鐘才能開啟的傳統(tǒng)虛擬機來得快。

容器提供了可以在分散且隔離的環(huán)境中運行和維護應(yīng)用程序的功能。因為應(yīng)用程序被制作成擁有完整架構(gòu)體系的鏡像并建立在獨立的容器中,在這種隔離和獨立空間的保證下,可以在給定的物理機器上同時運行多個容器。此外,容器是輕量級且獨立的,又包含運行應(yīng)用程序所需的所有內(nèi)容,因此用戶不需要依賴主機上安裝的內(nèi)容。用戶可以在工作時或生產(chǎn)環(huán)境下快速便捷地共享容器或移植鏡像,并確保與之共享的每一個用戶都能獲得相同環(huán)境下的相同容器或鏡像,有效解決了運行環(huán)境改變而帶來的各個組件之間的兼容性問題。

綜上,利用Docker 可以實現(xiàn)對環(huán)境的快速構(gòu)建,避免了環(huán)境不一致和依賴沖突等問題。將所有的應(yīng)用、配置和依賴打包進容器中,以便在任何環(huán)境下都能夠有效運行。容器虛擬化技術(shù)藉由鏡像妥善解決了在線和離線環(huán)境的問題,保證生活周期中應(yīng)用或服務(wù)環(huán)境的標準化,非常有利于持續(xù)部署與測試。因此,容器虛擬化技術(shù)迅速成為新興的虛擬化方式,Docker 容器與以往的虛擬化方式相比具有顯著的優(yōu)勢。

2 Docker 容器技術(shù)

Docker 容器技術(shù)中包含三個重要組件,分別是鏡像、容器和倉庫。通常來說,鏡像用于創(chuàng)建容器,這與Java語言中的班級與實例的關(guān)系相似。鏡像是靜態(tài)定義,容器是執(zhí)行鏡像時的實體,可以創(chuàng)建、啟動、停止、刪除和暫停容器。在Docker 技術(shù)的原理中,容器表示具有完整的最后一個操作系統(tǒng)的應(yīng)用程序。Docker 容器完全使用沙箱機制,相互之間不會有任何接口,對資源的額外需求很低,運行時不需要專門的虛擬化管理程序,只需占用較小的存儲空間。

Docker 的倉庫是集中存放鏡像文件的場所,倉庫中存放很多的鏡像,每個鏡像具有不同的標簽用于標注版本和其他信息。當需要在其他服務(wù)器上使用某個鏡像時,就可以直接從倉庫中獲取,也就是說倉庫可為鏡像提供存儲和分發(fā)的服務(wù)。

2.1 Docker 環(huán)境安裝

Docker 使用client-server 體系結(jié)構(gòu),Docker 客戶端可以與Docker 守護進程(即Docker 服務(wù)器)建立通信。客戶端和守護進程可以在同一系統(tǒng)中運行。客戶端也可以連接到遠程Docker 守護進程。Docker 客戶端和Docker 守護進程也可以使用JavaAPI,通過UNIX 插口或網(wǎng)絡(luò)接口實現(xiàn)通信和連接。

CentOS 是最常用的Linux 操作系統(tǒng),本文使用CentOS7來演示如何搭建Docker 運行環(huán)境,搭建過程比較簡單,可分為以下三步:

(1)條件準備。選擇Docker 支持的操作系統(tǒng),目前市面上絕大多數(shù)的操作系統(tǒng)Docker 都支持,這里選用的是CentOS 系統(tǒng)的7.9 版本。安裝Docker 引擎,需要具備一個穩(wěn)定的或長期支持的CentOS 版本,不支持測試或存檔版本。

(2)完成安裝。Docker 的安裝方法有多種,包括yum安裝、rpm 包安裝、便捷非交互式腳本安裝等。

啟動Docker 服務(wù)并查看服務(wù)狀態(tài),如圖1所示。

圖1 啟動Docker 服務(wù)

2.2 Docker 鏡像制作

Docker 鏡像是Docker 的重要組成部分,一層一層地重疊而成,但鏡像卻是獨立的不可寫入的對象。鏡像內(nèi)是簡單的操作系統(tǒng)且較多使用Linux 操作系統(tǒng),還包括執(zhí)行應(yīng)用程序所需的文件和依賴性軟件包,同時也會根據(jù)不同的應(yīng)用場景疊加應(yīng)用程序。Docker 容器技術(shù)解決了普通虛擬機龐大臃腫的問題。鏡像可以理解為一種構(gòu)建時(build-time)結(jié)構(gòu),而容器可以理解為一種運行時(run-time)結(jié)構(gòu)。

映像是一個只讀模板,其中包含有關(guān)創(chuàng)建Docker 容器的說明。通常情況下,一個映像是基于另一個映像而存在的,并且映像還具有一些額外的自定義層來實現(xiàn)具體的功能。用戶可以創(chuàng)建自己的映像,也可以使用其他人創(chuàng)建的鏡像,用戶可在Docker 的倉庫中找到其他開發(fā)者發(fā)布的映像。

如圖2所示,所有的Docker 鏡像都起始于一個基礎(chǔ)鏡像層,在修改或增加新的內(nèi)容時,就會在當前鏡像層之上創(chuàng)建新的鏡像層,比如在centOS7 的鏡像里添加了JDK,那么就會在CentOS7 的基礎(chǔ)鏡像層上添加一個包含JDK 的鏡像層。鏡像運行時應(yīng)用了宿主機的Kernel 內(nèi)核,內(nèi)核的上一層一般是操作系統(tǒng)(比如CentOS、Ubuntu 等),再上一層是運行環(huán)境或應(yīng)用程序服務(wù)(如JDK、Apache 等)。

圖2 Docker 分層鏡像

使用docker run 命令從一個鏡像中創(chuàng)建啟動容器,一個鏡像可以創(chuàng)建為多個容器,一旦鏡像通過容器啟動后,二者之間就會產(chǎn)生一定的依賴關(guān)系,另外,容器啟動后,鏡像是無法被刪除的。Docker 鏡像可以從官方公共鏡像倉庫DockerHub 中獲取。鏡像倉庫是容器環(huán)境的重要組成部分,用于保存和管理鏡像文件。DockerHub 中有Docker 官方提供的鏡像和許多社區(qū)開發(fā)者貢獻的鏡像,必要時還可以根據(jù)需要自行定制鏡像。

制作鏡像的方法主要有兩種:一種是打包鏡像生成的容器,另一種是使用鏡像文件制作鏡像。一般的生產(chǎn)環(huán)境中通常使用Dockerfile 文件來創(chuàng)建并定義用戶所需的應(yīng)用。Dockfile 是由Docker 程序解釋的腳本,Dockerfile 由對應(yīng)于Linux 下的命令構(gòu)成。

使用Dockerfile 文件制作鏡像的主要流程是先創(chuàng)建一個Dockerfile,在Dockerfile 中自定義創(chuàng)建鏡像的組件,最后生成并測試映像。通過在Dockerfile 文件中輸入相應(yīng)的指令來配置用戶所需的環(huán)境和功能,Dockerfile 中的每條指令都會在映像中疊加一個層。更改Dockerfile 并重新生成映像時,只會重新生成已更改的層。基于這樣的模式,Docker 與其他虛擬化技術(shù)相比更加快捷。

在基于Docker 容器快速搭建多節(jié)點Hadoop 集群部署方案中,使用鏡像文件制作鏡像,鏡像層級結(jié)構(gòu)如圖3所示,基礎(chǔ)鏡像為Ubuntu14,在基礎(chǔ)鏡像的基礎(chǔ)上完成依賴包的配置(比如JDK、SSH、wget 等基礎(chǔ)服務(wù)以及環(huán)境變量、免密登錄的配置)。定義Dockerfile 時需要創(chuàng)建一個文件夾作為生成hadoop 鏡像的場所,生成鏡像所需的資源和鏡像文件Dockerfile 都存放在這個文件夾下,此文件夾可以任意命名,但是生成鏡像的文件必須命名為Dockerfile。

圖3 鏡像層級結(jié)構(gòu)

3 部署方案

基于Docker 容器快速搭建多節(jié)點Hadoop 集群部署方案借助阿里云服務(wù)器來完成,利用Docker 容器模擬多節(jié)點,具體性能表如表1所示。

表1 硬件信息

集群搭建的軟件環(huán)境如表2所示。環(huán)境搭建完成后,利用設(shè)計好的Dockerfile 創(chuàng)建定制鏡像,再根據(jù)定制鏡像創(chuàng)建容器進行實際搭建。

表2 組件版本信息

本方案中Hadoop 集群結(jié)構(gòu)設(shè)計如圖4所示,包含一個主節(jié)點、2 個從節(jié)點,由于不涉及存儲性能要求,故本方案中的HDFS 采用默認副本數(shù),不進行額外修改。

圖4 Hadoop 集群結(jié)構(gòu)

3.1 集群部署

本方案先在阿里云服務(wù)器上搭建好集群間的虛擬網(wǎng)絡(luò),并通過定制鏡像完成1 個主節(jié)點容器和2 個從節(jié)點容器的創(chuàng)建,然后進入主節(jié)點容器,通過腳本啟動Hadoop 集群,通過訪問Hadoop 集群的主節(jié)點50070 即可查看集群情況。需要注意的是,根據(jù)容器啟動時的端口映射規(guī)則,此時主節(jié)點的50070 會映射宿主機的50070 端口,因此實際上是通過訪問宿主機的50070 端口來獲取集群情況,如圖5所示,集群狀態(tài)是活躍的。

圖5 集群情況

3.2 集群測試

WordCount 可以說是最簡單的MapReduce 程序,多節(jié)點Hadoop 集群部署完成后,以詞頻統(tǒng)計WordCount 為例,對集群進行測試,驗證集群運行情況。

以詞頻統(tǒng)計WordCount 為例,對集群進行測試,詳情為:

(1)WordCount 的過程如圖6所示,按照mapreduce編程規(guī)范分別編寫Mapper、Reducer,完成詞頻統(tǒng)計。

圖6 MapReduce 程序工作流程

(2)在完成必要的準備工作之后執(zhí)行WordCount 程序,程序運行情況如圖7所示。

圖7 WordCount 程序運行情況

(3)監(jiān)控WordCount 程序運行時硬件資源使用情況。由前文可知WordCount 程序是MapRecuce 程序,需要消耗計算資源,因此圖8CPU 使用情況符合測試預(yù)期。

圖8 CPU 使用情況

WordCount 程序的目的是通過MapReduce 計算框架詞頻統(tǒng)計,需要占用較多內(nèi)存,所以如圖9所示的內(nèi)存使用情況符合測試預(yù)期。

圖9 內(nèi)存使用情況

如圖10所示,系統(tǒng)負載量跟活躍進程數(shù)量有直接關(guān)系,因此在WordCount 程序運行期間系統(tǒng)負載呈明顯上升趨勢是符合測試預(yù)期的。

圖10 系統(tǒng)負載情況

(4)通過瀏覽器監(jiān)控界面查看統(tǒng)計結(jié)果,如圖11所示。

圖11 統(tǒng)計結(jié)果

4 結(jié) 論

傳統(tǒng)的應(yīng)用程序開發(fā)完成后,需要準備很多的設(shè)置說明文檔以幫助其他開發(fā)人員進一步開發(fā),而Docker 的封裝和隔離特性讓煩瑣的部署配置工作變得簡單。鏡像中引入各種復(fù)雜的安裝配置環(huán)境,且Docker 虛擬出一套完整的操作系統(tǒng),所以兼容性問題得到保障,同時也大大節(jié)省了部署配置和測試驗證時間,在生產(chǎn)環(huán)境下省去很多成本,極大地提高了開發(fā)測試效率。容器是輕量級的操作系統(tǒng),在物理機器的系統(tǒng)上操作,不需要像虛擬機那樣翻譯指令,直接使用物理機器的CPU 命令即可。

Docker 的應(yīng)用也明顯改善了學(xué)習(xí)和生產(chǎn)環(huán)境,生產(chǎn)環(huán)境下的一些配置是極其煩瑣的,如果需要將應(yīng)用服務(wù)環(huán)境移植到另一臺機器,就要反復(fù)地進行配置和調(diào)試,這樣會消耗大量的時間和人力,對企業(yè)來說將是一筆不小的投入。Docker 技術(shù)完美地解決了這個問題,同時開發(fā)人員還可以利用Docker 來解決協(xié)作編碼時環(huán)境不兼容的問題,Docker 之所以發(fā)展如此迅速,也是因為它提供了系統(tǒng)平滑移植、容器虛擬化技術(shù)的標準化解決方案。

猜你喜歡
環(huán)境
長期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
孕期遠離容易致畸的環(huán)境
不能改變環(huán)境,那就改變心境
環(huán)境與保護
環(huán)境
孕期遠離容易致畸的環(huán)境
高等院校環(huán)境類公選課的實踐和探討
掌握“三個三” 兜底環(huán)境信訪百分百
我國環(huán)境會計初探
中國商論(2016年33期)2016-03-01 01:59:38
主站蜘蛛池模板: 亚洲午夜片| 超碰精品无码一区二区| 一区二区三区毛片无码| 国产久草视频| 中文成人无码国产亚洲| 国产亚洲精品97在线观看| 日韩成人午夜| 亚洲精品在线影院| 成人一级黄色毛片| 欧美一级片在线| 日韩免费毛片| 国产成人免费手机在线观看视频 | 亚洲中文精品人人永久免费| 91九色最新地址| 在线观看无码av免费不卡网站| 狠狠色成人综合首页| 国产精品吹潮在线观看中文| 免费黄色国产视频| 欧美日韩一区二区在线免费观看| 在线精品欧美日韩| 日本不卡在线| 欧美日韩高清在线| 91网红精品在线观看| 亚洲三级影院| 无码久看视频| 久久精品亚洲中文字幕乱码| 亚洲午夜天堂| 97久久精品人人做人人爽| 无码一区中文字幕| 精品视频福利| 亚洲AV无码一区二区三区牲色| 久久情精品国产品免费| 欧美亚洲国产精品第一页| 久久婷婷五月综合97色| 四虎影视无码永久免费观看| 国产白丝av| 久热中文字幕在线| 中文国产成人久久精品小说| 中国一级毛片免费观看| 亚洲香蕉久久| 日韩 欧美 小说 综合网 另类| 国产精品第5页| 午夜在线不卡| 91福利免费| 四虎国产成人免费观看| 精品五夜婷香蕉国产线看观看| 日本a级免费| 无码免费的亚洲视频| 亚洲成A人V欧美综合| 日韩无码真实干出血视频| 欧美在线黄| 精品国产香蕉伊思人在线| 黄色片中文字幕| 日本伊人色综合网| 亚洲大尺度在线| 在线日韩日本国产亚洲| 黄色网站不卡无码| 伊人狠狠丁香婷婷综合色| 国产H片无码不卡在线视频| 四虎免费视频网站| 亚洲综合激情另类专区| 欧美午夜久久| 亚洲水蜜桃久久综合网站| 国产91高清视频| 在线亚洲天堂| 午夜啪啪福利| 国产精品视频导航| 亚洲国产日韩在线观看| 伊人国产无码高清视频| 伊人激情久久综合中文字幕| 热这里只有精品国产热门精品| 国产成年女人特黄特色毛片免 | 老司机午夜精品视频你懂的| 麻豆精品在线| 午夜日b视频| 日韩一级毛一欧美一国产| 欧美一级黄片一区2区| 国内精品一区二区在线观看| 亚洲日韩精品综合在线一区二区| 亚洲第一视频网站| 狼友视频一区二区三区| 久久香蕉国产线看观|