国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Docker的Hadoop平臺(tái)架構(gòu)研究

2016-01-02 09:18趙樂樂
關(guān)鍵詞:鏡像虛擬化容器

趙樂樂,黃 剛,馬 越

(南京郵電大學(xué)計(jì)算機(jī)學(xué)院,江蘇南京 210003)

基于Docker的Hadoop平臺(tái)架構(gòu)研究

趙樂樂,黃 剛,馬 越

(南京郵電大學(xué)計(jì)算機(jī)學(xué)院,江蘇南京 210003)

Hadoop作為云計(jì)算中重要的大數(shù)據(jù)處理平臺(tái),需要較高的讀寫速率。傳統(tǒng)的虛擬化技術(shù)對(duì)于物理主機(jī)的資源利用率,無法達(dá)到真實(shí)物理主機(jī)的水平。同時(shí),傳統(tǒng)虛擬化技術(shù)難以靈活配置文件和自動(dòng)化創(chuàng)建、部署機(jī)制。容器是基于共享Linux內(nèi)核的一種虛擬化技術(shù),能夠達(dá)到接近物理主機(jī)的資源利用率。Docker是一種輕量級(jí)新興的虛擬化容器技術(shù),在復(fù)雜的集群系統(tǒng)的搭建方面,具有可移植、易使用、跨平臺(tái)等優(yōu)勢(shì)。所以,在復(fù)雜的分布式應(yīng)用集群的部署中,Docker能夠快速、準(zhǔn)確、標(biāo)準(zhǔn)化封裝應(yīng)用程序并自動(dòng)化部署整個(gè)運(yùn)行環(huán)境。因此,Docker是容器虛擬化技術(shù)下一個(gè)相對(duì)成熟的實(shí)現(xiàn)方案。通過實(shí)驗(yàn)驗(yàn)證了Docker相比傳統(tǒng)虛擬化技術(shù)在讀寫性能上的優(yōu)勢(shì),并構(gòu)建了基于Docker的Hadoop平臺(tái),討論了在Docker上構(gòu)建Hadoop的優(yōu)勢(shì)。

Hadoop;虛擬化;容器;Docker

0 引言

Hadoop作為一款優(yōu)秀的PaaS軟件,能夠讓開發(fā)者更有效率的開發(fā)與部署,而不需關(guān)注底層。對(duì)于Hadoop的部署,一般來說有兩種選擇:一種是直接部署在物理主機(jī)上,一種是部署在虛擬機(jī)上。當(dāng)然,大多數(shù)時(shí)是根據(jù)情況,混合使用物理主機(jī)和虛擬機(jī)來部署Hadoop。對(duì)于商業(yè)公司來說,一般都會(huì)把Hadoop部署在IaaS提供的虛擬機(jī)上,以提高對(duì)單點(diǎn)故障等問題的處理速度,利于運(yùn)維人員的管理維護(hù),而不是直接部署在物理主機(jī)上。然而,由于虛擬機(jī)本身需要消耗一定資源來實(shí)現(xiàn)底層的虛擬化,所以勢(shì)必會(huì)消耗物理主機(jī)的資源。

對(duì)于企業(yè)級(jí)的Hadoop部署,底層的虛擬化方案組成有很多,當(dāng)前業(yè)界提供的虛擬機(jī)方案大致可分為三類:XEN、KVM以及Vmware。對(duì)于企業(yè)應(yīng)用來說,可能會(huì)選擇使用混合多種虛擬機(jī)方案的方式,也有很多廠商專門提供組合虛擬化技術(shù)的解決方案。但無論這些虛擬化解決方案是如何組成的,它們都可歸類為使用全虛擬化技術(shù)或使用部分虛擬化技術(shù),這些虛擬化技術(shù)都要提供一個(gè)完整的虛擬硬件環(huán)境,從而能讓一個(gè)操作系統(tǒng)完整地安裝在虛擬機(jī)中?,F(xiàn)在各大云計(jì)算虛擬化廠商的IaaS層,無論是AWS、Google還是國內(nèi)的BAT公司,基本都使用這種虛擬主機(jī)的方式。這種方式有其自身的優(yōu)勢(shì),即能夠充分利用物理機(jī)的資源,能夠自由選擇所要?jiǎng)?chuàng)建的主機(jī)的虛擬硬件,能夠構(gòu)建各種系統(tǒng)環(huán)境。但由于每臺(tái)虛擬機(jī)都是完整地安裝整個(gè)操作系統(tǒng),虛擬機(jī)之間不能共享相同的底層操作系統(tǒng)的功能,并且在實(shí)際使用過程中,往往并不需要完整的操作系統(tǒng)支持,只需要其中的一些軟件,只是因?yàn)榘踩c維護(hù)等因素才需要虛擬機(jī)。所以,一個(gè)完整的操作系統(tǒng)雖然功能強(qiáng)大,但也造成了一定的資源浪費(fèi)。正是基于這一原因,近年來出現(xiàn)了新的輕量級(jí)的虛擬化技術(shù)—容器。

1 容器技術(shù)

文中所指的容器技術(shù)是Linux容器(Linux Container,LXC)技術(shù)。容器有效地將由單個(gè)操作系統(tǒng)管理的資源劃分到孤立的組中,以便更好地在孤立的組之間平衡有沖突的資源使用需求[1]。容器的思想就是把一個(gè)進(jìn)程(包括其子進(jìn)程)獨(dú)立打包在一個(gè)“集裝箱”內(nèi),而不影響系統(tǒng)內(nèi)的其他進(jìn)程。這樣做的最大好處就是,容器內(nèi)的進(jìn)程所運(yùn)行的環(huán)境是獨(dú)立于底層物理操作系統(tǒng)的,當(dāng)容器啟動(dòng)的時(shí)候,也僅是通過進(jìn)程間調(diào)度,而不需要引導(dǎo)整個(gè)系統(tǒng),從而提高效率。

容器技術(shù)在Linux的2.6.29版本中就產(chǎn)生了,并且已有多種實(shí)現(xiàn)方案,但之前的技術(shù)并沒有引起業(yè)界的關(guān)注。2013年Docker Inc公司發(fā)布了一個(gè)開源的基于LXC技術(shù)的容器引擎,使得容器技術(shù)獲得了業(yè)界的重視?,F(xiàn)在Docker技術(shù)已經(jīng)被Google、IBM、RedHat、Amazon和微軟等業(yè)界知名公司所支持。虛擬機(jī)和容器正在改變運(yùn)行、設(shè)計(jì)、開發(fā)和部署應(yīng)用程序的方式。

Docker受歡迎的原因是其主要解決了以下問題:

(1)快速部署。通常一款產(chǎn)品能夠成功發(fā)布,開發(fā)者需要關(guān)心很多東西,從操作系統(tǒng)到中間件再到應(yīng)用,而且這些東西都難于管理,這個(gè)問題在軟件行業(yè)普遍存在。Docker則簡(jiǎn)化了這些工作,比如Web應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫應(yīng)用、大數(shù)據(jù)應(yīng)用,Hadoop集群、消息隊(duì)列等都可以打包成一個(gè)鏡像,然后再快速部署。

(2)軟件管理。亞馬遜的AWS之所以成功,是因?yàn)樗岄_發(fā)者將應(yīng)用轉(zhuǎn)移到云上,解決了硬件管理的問題,然而軟件配置和管理相關(guān)的問題依然存在。Docker正好能幫助軟件開發(fā)者使用新的軟件管理方法來解決這個(gè)問題。

(3)虛擬化技術(shù)的改變。云計(jì)算使用標(biāo)配的硬件來降低成本,采用虛擬化的手段來滿足用戶按需分配的資源需求以及保證可用性和隔離性。然而無論是KVM還是Xen,都存在一定的資源浪費(fèi),因?yàn)橛脩粜枰氖歉咝У倪\(yùn)行環(huán)境而非一個(gè)操作系統(tǒng),虛擬主機(jī)既浪費(fèi)資源又難于管理,輕量級(jí)的LXC則更具靈活性和快速性。

(4)更高的便攜性。LXC在Linux 2.6的內(nèi)核里就已經(jīng)存在了,但是其設(shè)計(jì)之初并不是為云計(jì)算考慮的,缺少標(biāo)準(zhǔn)化的描述手段和容器的可便攜性,決定其構(gòu)建出的環(huán)境難于分發(fā)和標(biāo)準(zhǔn)化管理。Docker則在這個(gè)問題上做出了實(shí)質(zhì)性的創(chuàng)新方法[2]。

從模塊化和整合化的方面來說,可以認(rèn)為Docker被設(shè)計(jì)的初衷是在獨(dú)立封裝和在任何平臺(tái)都可以同步運(yùn)行。Docker將操作系統(tǒng)、虛擬機(jī)、物理機(jī)和基于上面的操作整合起來進(jìn)行商品化,同時(shí)提供了一系列的API,使得其他人能夠基于這些 API進(jìn)行操作。但Docker不能商品化的部分是數(shù)據(jù)中心[3],這是其目前的缺陷。

從一個(gè)開發(fā)者的角度,把應(yīng)用封裝在Docker的意義在于,可以把整個(gè)云服務(wù)作為一個(gè)模塊進(jìn)行操作,這其中的模塊只是一個(gè)可以被替代的商品。Docker的優(yōu)勢(shì)在于,可以任意地把應(yīng)用進(jìn)行遷移而無需做出其他改動(dòng)。所以對(duì)于開發(fā)者而言,封裝應(yīng)用只需要Docker就夠了。

軟件工程從初期的獨(dú)立主義到現(xiàn)在,已經(jīng)發(fā)展成一個(gè)高度工程化的產(chǎn)業(yè)鏈形式。為了更好地交付軟件和服務(wù),人們認(rèn)識(shí)到將開發(fā)和運(yùn)營分隔開來的傳統(tǒng)做法已不適合當(dāng)前的軟件服務(wù)開發(fā)需求,所以就要把開發(fā)與運(yùn)營作為一個(gè)整體,這也就是所謂的DevOps思想。業(yè)界也隨之有了對(duì)DevOps系統(tǒng)的需求,即希望有一套平臺(tái)或軟件能夠整合開發(fā)和運(yùn)營交付以及之后的管理工作。所以,從DevOps來看,云平臺(tái)都是為了解決開發(fā)人員在開發(fā)測(cè)試過程中快速搭建環(huán)境以及后期運(yùn)營支持過程中恢復(fù)升級(jí)監(jiān)控系統(tǒng)所服務(wù)的。近年來,隨著云計(jì)算產(chǎn)業(yè)的發(fā)展,DevOps的概念也在業(yè)界變得流行。第一代的DevOps系統(tǒng)是基于物理主機(jī)部署的,主要靠人工協(xié)調(diào)來進(jìn)行業(yè)務(wù)的自動(dòng)部署,第二代的DevOps系統(tǒng)則是基于IaaS進(jìn)行部署的,借助云計(jì)算的資源監(jiān)控特性,能夠?qū)崿F(xiàn)很好的智能感知等,能夠快捷地通過遷移方便地解決硬件單點(diǎn)故障問題,自動(dòng)做到負(fù)載均衡。這是目前很多云計(jì)算公司都在極力達(dá)到的目標(biāo),現(xiàn)在很多公司還不能很好地實(shí)現(xiàn)第二代DevOps系統(tǒng)。然而,隨著容器技術(shù)的發(fā)展,DevOps系統(tǒng)有了一個(gè)新的方向,即基于容器的部署,容器能夠?qū)崿F(xiàn)應(yīng)用的跨云遷移,使得應(yīng)用不會(huì)被限定在固有的IaaS中。例如,搭建了一套集群,混合了Vmware和Xen技術(shù),兩套系統(tǒng)的虛擬機(jī)無法實(shí)現(xiàn)實(shí)時(shí)互相遷移,因?yàn)榈讓拥南到y(tǒng)存儲(chǔ)格式是不一樣的;而容器則不存在這種問題,只需要通過啟用對(duì)應(yīng)的容器鏡像,就可以啟動(dòng)一個(gè)新的服務(wù),這樣做就無需關(guān)心底層的IaaS架構(gòu)了。

另外,隨著將DevOps實(shí)踐引入應(yīng)用程序生命周期管理,應(yīng)用程序性能管理(APM)方案的出現(xiàn)則逐漸成為企業(yè)實(shí)現(xiàn)DevOps投資回報(bào)的重要前提[4]。對(duì)于應(yīng)用程序的管理,在如今云應(yīng)用程序普及的情況下,如何整合云應(yīng)用則是IT團(tuán)隊(duì)所面臨的嚴(yán)峻挑戰(zhàn),而容器技術(shù)則為其提供了一個(gè)比較好的解決方案。所以,從商業(yè)效益上來說,容器技術(shù)可以認(rèn)為是云計(jì)算和DevOps發(fā)展的下一個(gè)重要方向。目前已有超過14 000個(gè)應(yīng)用建立在 Docker上,eBay也正在測(cè)試建立在Docker上的數(shù)據(jù)中心軟件[5]。

Docker也可以在虛擬機(jī)中運(yùn)行的很好,這可以讓它應(yīng)用在已有的虛擬化框架中,如私有云和公有云。同樣也有可能在容器中運(yùn)行虛擬機(jī),這有點(diǎn)像谷歌在其云平臺(tái)中使用容器的方式。只要IaaS得到廣泛應(yīng)用,并可按需提供虛擬機(jī)服務(wù),那么就有理由期待容器和虛擬機(jī)的應(yīng)用可以并存。還有一種可能,即將容器管理和虛擬化技術(shù)進(jìn)行融合以提供一種兩全其美的方法[6]。因?yàn)槿萜髂軌蚝芎玫貪M足各類PaaS功能,所以形象的說,可以把IaaS領(lǐng)域的市場(chǎng)看作是蘋果的應(yīng)用程序商店,現(xiàn)在可以添加類似PaaS功能,這些功能可以“加載”到采用按需付費(fèi)的訂閱服務(wù)模式的IaaS產(chǎn)品上[7]。所以隨著IaaS將各項(xiàng)類PaaS的服務(wù)添加到自己的服務(wù)組合中,PaaS和IaaS之間的界限會(huì)變得更為模糊,很有可能IaaS和PaaS最終會(huì)合成一體。

可以匯總出一套通用型解決模式,其中Docker分別充當(dāng)以下幾種角色:

(1)Docker提供經(jīng)過認(rèn)證的軟件包,并保證其能夠與穩(wěn)定不變的現(xiàn)有基礎(chǔ)設(shè)施模型順利協(xié)作;

(2)Docker為微服務(wù)POD提供出色的容器化運(yùn)行環(huán)境;

(3)在IaaS之上使用Docker,并將其作用于裸機(jī)環(huán)境等同的運(yùn)行平臺(tái)。

是否使用云基礎(chǔ)設(shè)施僅僅是種自由選項(xiàng)而非強(qiáng)制要求。舉例來說,如果出于DevOps的目的而考慮建立一套小型自動(dòng)化開發(fā)與測(cè)試環(huán)境,那么在裸機(jī)環(huán)境上直接使用Docker機(jī)制更適合[8]。

2 虛擬機(jī)與容器的比較

虛擬主機(jī)技術(shù)能夠讓一臺(tái)物理主機(jī)運(yùn)行多個(gè)操作系統(tǒng),物理主機(jī)系統(tǒng)稱為Host OS,而在虛擬機(jī)中安裝的操作系統(tǒng)則稱為Guest OS。每個(gè)Guest OS都有自己的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)組件,這些可以通過硬件虛擬化,或者Host OS通過把Guest OS的指令翻譯成物理機(jī)指令來實(shí)現(xiàn)。所以從理論上來說,Guest OS可以是任何一款操作系統(tǒng),與底層的Host OS無關(guān)。

容器則是一款輕量級(jí)的操作系統(tǒng),它運(yùn)行在物理機(jī)的系統(tǒng)上,直接使用物理機(jī)的CPU指令,而不需要像虛擬機(jī)那樣要對(duì)指令進(jìn)行翻譯。所以容器不需要像虛擬機(jī)那樣有太多的開銷,并能提供很好的隔離性。雖然虛擬機(jī)利用了RAM的過度承諾技術(shù)(RAM over commitment),容器也表現(xiàn)出比虛擬機(jī)更低的系統(tǒng)負(fù)載,所以同樣的應(yīng)用,在容器中相比在虛擬機(jī)中,性能通常會(huì)相當(dāng)或者更好。經(jīng)過實(shí)際測(cè)試,在Docker啟動(dòng)時(shí)不加載額外軟件的話,即只使用基本的系統(tǒng)鏡像,所占用的內(nèi)存僅有幾兆,甚至更少。因?yàn)镈ocker對(duì)于內(nèi)存消耗主要是在所加載的程序上的,而不像虛擬機(jī)需要額外提供給一些系統(tǒng)級(jí)的服務(wù),所以對(duì)于一臺(tái)服務(wù)器,Docker能比虛擬機(jī)提供更多隔離的容器給用戶使用,這樣大大提高了物理主機(jī)的使用效率。

表1比較了虛擬機(jī)與容器在性能、隔離性、安全性、網(wǎng)絡(luò)和存儲(chǔ)上的不同之處[9]。

同時(shí),由于容器也可以安裝在IaaS所分配的虛擬機(jī)上,相比現(xiàn)有的PaaS,容器技術(shù)也更具靈活性。因?yàn)楝F(xiàn)有的PaaS,大部分都是廠商驅(qū)動(dòng)的,例如Cloud Foundry(原先由Vmware開發(fā))、OpenShift(紅帽)等,這些廠商驅(qū)動(dòng)的PaaS讓廣大開發(fā)人員和用戶被某家廠商牢牢鎖定,如果要將應(yīng)用程序從廠商驅(qū)動(dòng)的平臺(tái)傳送到另一個(gè)平臺(tái),將會(huì)非常麻煩。而容器則不會(huì)出現(xiàn)這種問題,因?yàn)槿萜鞯讓泳屯耆梢钥醋魇且粋€(gè)操作系統(tǒng),就如同一個(gè)虛擬機(jī)。也正因?yàn)槿绱?,現(xiàn)在業(yè)界很看好把容器構(gòu)建成一個(gè)分布式服務(wù)。目前比較成熟的就是Google的Kubernetes,這是一款開源的容器管理系統(tǒng),Google最新的Container Engine就是基于Kubernetes設(shè)計(jì)的。

3 Docker的讀寫性能

由于Docker本身也是一種虛擬化技術(shù),在使用Docker作為Hadoop集群部署的環(huán)境時(shí),需要保證其在讀寫性能上不低于現(xiàn)有的虛擬機(jī)技術(shù)。因?yàn)镠adoop集群需要存儲(chǔ)處理大數(shù)據(jù),所以對(duì)于I/O的讀寫性能要求很高。為了驗(yàn)證容器與KVM的性能,使用了一個(gè)測(cè)試案例,實(shí)驗(yàn)環(huán)境為:

硬件環(huán)境:4 G內(nèi)存,雙核CPU,200 G磁盤;

軟件環(huán)境:sysbench 0.4.12,文件塊為16 k。

sysbench是一款開源軟件,主要用于多線程性能測(cè)試。

因?yàn)閷?shí)驗(yàn)環(huán)境為Linux系統(tǒng),Linux在實(shí)現(xiàn)文件系統(tǒng)時(shí)采用了兩層結(jié)構(gòu):第一層是虛擬文件系統(tǒng),它把各種實(shí)際文件系統(tǒng)的公共結(jié)構(gòu)抽象出來,建立統(tǒng)一的以inode為中心的組織結(jié)構(gòu),為實(shí)際文件系統(tǒng)提供兼容性[10]。所以,雖然Docker使用了自己的一套文件系統(tǒng),不像KVM的虛擬機(jī)可以保證使用標(biāo)準(zhǔn)的Linux文件系統(tǒng),但對(duì)于實(shí)驗(yàn)的影響不大。同時(shí),因?yàn)槭请S機(jī)讀寫的文件,所以為了取得更好的處理效果,把/sys/ block/sda/queue/scheduler的值設(shè)為deadline。該值是經(jīng)過實(shí)驗(yàn)驗(yàn)證后確認(rèn)的,將所產(chǎn)生的數(shù)據(jù)分別在deadline、anticipator、noop和cfq的調(diào)度算法下使用time命令進(jìn)行了測(cè)試。結(jié)果顯示,deadline是耗時(shí)最少的。所以為了提高效率,將實(shí)驗(yàn)環(huán)境都同樣設(shè)定為相同的調(diào)度算法。

隨機(jī)讀寫150 G的文件,將結(jié)果用gnuplot繪圖,結(jié)果如圖1~3所示。

從實(shí)驗(yàn)結(jié)果可以看出,使用Docker技術(shù),在I/O的讀寫性能上都是優(yōu)于KVM技術(shù)的,容器也表現(xiàn)出比虛擬機(jī)更低的系統(tǒng)負(fù)載。所以同樣的應(yīng)用,在容器中相比在虛擬機(jī)中,性能通常會(huì)相當(dāng)或者更好。國外也有一些機(jī)構(gòu)已經(jīng)開始把Docker用于構(gòu)建大數(shù)據(jù)處理平臺(tái)了,例如羅馬尼亞的Cluj-Napoca。Cluj-Napoca大學(xué)就把處理地球觀測(cè)數(shù)據(jù)的平臺(tái)構(gòu)建在 Docker上[11],獲得了較好的性能表現(xiàn)。所以說,Docker技術(shù)具有很好的I/O性能,能夠作為大數(shù)據(jù)處理工具平臺(tái)。

4 在Docker上構(gòu)建Hadoop平臺(tái)

作為一種特殊的鏡像軟件,要制作特定的軟件鏡像,Docker有其自己的安裝打包方式,主要有[12]:

(1)直接在基礎(chǔ)鏡像上安裝軟件,然后使用Docker命令將其封裝成一個(gè)新的鏡像;

(2)使用Dockerfile文件,拉取進(jìn)出系統(tǒng)鏡像后,讓鏡像根據(jù)Dockerfile文件的內(nèi)容自己編譯安裝。

第1種方法的優(yōu)點(diǎn)是所有操作與真實(shí)操作一臺(tái)虛擬機(jī)一樣,無需重新學(xué)習(xí)新內(nèi)容;缺點(diǎn)是在部署這些鏡像時(shí),可能會(huì)由于所處環(huán)境的不同而造成需要重新修改部分內(nèi)容,而且,下載完整的鏡像所需要消耗的時(shí)間較多。

第2種方法則只需要在部署時(shí)下載該Dockerfile文件,然后讓系統(tǒng)自己去拉取數(shù)據(jù),這樣能夠減少所需下載的內(nèi)容,且由于鏡像完全是按照Dockerfile文件的內(nèi)容來制作的,所以能夠減少人為的干預(yù),從而減少出錯(cuò);但其缺點(diǎn)是需要花費(fèi)時(shí)間去學(xué)習(xí)Dockerfile文件的機(jī)制。

文中使用第2種方法來部署Hadoop,使用的Hadoop版本是2.5.2。

主要完成如下幾步:

(1)下載基礎(chǔ)系統(tǒng)鏡像;

(2)使用Dockerfile的內(nèi)建指令下載安裝軟件;

(3)使用 Dockerfile內(nèi)建指令加載對(duì)應(yīng)的配置文件。

同時(shí),由于Docker技術(shù)本身還在發(fā)展過程中,要使用Docker創(chuàng)建能夠被外網(wǎng)訪問的容器,需要進(jìn)行一些額外設(shè)置。利用容器的底層實(shí)現(xiàn)原理,通過腳本動(dòng)態(tài)地為每個(gè)容器創(chuàng)建對(duì)應(yīng)的橋接網(wǎng)口。這樣能夠?qū)崿F(xiàn)跨服務(wù)器間的容器間的互相訪問,也更接近真實(shí)的應(yīng)用環(huán)境。

通過使用Dockerfile文件,完成構(gòu)建基于Docker 的Hadoop環(huán)境。經(jīng)過測(cè)試,Hadoop能夠正常使用。把其與安裝在物理主機(jī)上的Hadoop進(jìn)行比較,通過time命令測(cè)試兩者運(yùn)行時(shí)間,結(jié)果顯示兩者耗時(shí)相差不大,部分情況下Docker下的耗時(shí)才略高一些。雖然部署的Docker數(shù)量不多,但能夠看出在Docker上部署的Hadoop在數(shù)據(jù)讀寫上的表現(xiàn)非常優(yōu)異。

5 結(jié)束語

Hadoop作為需要大量讀寫數(shù)據(jù)的云計(jì)算平臺(tái),部署在Docker下比部署在傳統(tǒng)的虛擬機(jī)上有更好的性能表現(xiàn)。文中驗(yàn)證了在Docker上讀寫數(shù)據(jù)的性能比KVM的更高,同時(shí),在Docker上部署Hadoop具有接近物理主機(jī)的資源利用率。并且,由于Docker把數(shù)據(jù)與運(yùn)行環(huán)境進(jìn)行了分離,所以可以把構(gòu)建好的Hadoop平臺(tái)作為鏡像發(fā)布,方便隨時(shí)添加或替換Hadoop節(jié)點(diǎn),這能夠提高部署Hadoop時(shí)的工作效率。Docker作為容器技術(shù)的最佳實(shí)踐,其性能優(yōu)勢(shì)使得其能夠替換現(xiàn)有的虛擬化技術(shù)?,F(xiàn)在國內(nèi)已經(jīng)有結(jié)合 Docker與OpenStack的研究(如文獻(xiàn)[13])和基于 Docker的PaaS平臺(tái)研究(如文獻(xiàn)[14]),這將使得IaaS與PaaS的界限變得更加模糊,Docker勢(shì)必會(huì)引領(lǐng)下一場(chǎng)云計(jì)算技術(shù)的浪潮。

[1] 楊保華,戴王劍,曹亞侖.Docker技術(shù)入門與實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014.

[2] 肖德時(shí).深入淺出Docker[EB/OL].[2015-01-05].http:// www.infoq.com/cn/articles/docker-core-technology-preview?utm_source=infoq&utm_medium=related_content_ link&utm_campaign=relatedContent_articles_clk.

[3] Compton D.Why Docker and CoreOS’split was predictable [EB/OL].[2015-01-05].http://danielcompton.net/2014/ 12/02/modular-integrated-docker-coreos.

[4] Lowy G.Application performance management enables DevOps ROI[EB/OL].[2015-01-05].http://www.apmdigest. com/application-performance-mangent-apm-devops-roi.

[5] Garber L.News briefs[J].IEEE Security and Privacy,2011,9 (6):9-11.

[6] Swan C.Docker:present and future[EB/OL].[2015-01-05].http://www.infoq.com articles/docker-future.

[7] Kavis M.Blurring the line between PaaS and IaaS[EB/OL]. [2015-01-05].http://www.forbes.com/sites/mikekavis/ 2014/06/02/blurring-the-line-between-paas-and-iaas/.

[8] Shalom N.Do I need OpenStack if I use Docker[EB/OL]. [2015-01-05].http://pensource.com/business/14/11/do-i -need-openstack-if-i-use-docker.

[9] Dua R,Raja A R,Kakadia D.Virtualization vs containerization to support PaaS[C]//Proc of IEEE international conference on cloud engineering.Boston,MA:IEEE,2014:610-614.

[10]黃 剛,徐小龍,段衛(wèi)華.操作系統(tǒng)教程[M].北京:人民郵電出版社,2009.

[11]Bica M,Bacu V,Mihon D,et al.Architectural solution for virtualized processing of big earth[C]//Proc of IEEE international conference on ICCP.Cluj Napoca:IEEE,2014:399-404.

[12]Turnbull J.The Docker book[M].[s.l.]:Amazon Digital Services,Inc.,2014.

[13]張忠琳,黃炳良.基于OpenStack云平臺(tái)的Docker應(yīng)用[J].軟件,2014,35(11):73-76.

[14]鞠春利,劉印鋒.基于Docker的私有PaaS系統(tǒng)構(gòu)建[J].輕工科技,2014(10):80-80.

Research on Hadoop Platform Based on Docker

ZHAO Le-le,HUANG Gang,MA Yue
(School of Computer,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)

Hadoop,as an important big data processing platform,needs higher I/O rate.For the resource utilization of physical host,the traditional virtualization technology cannot reach the level of real physical host.Meanwhile,it is difficult to configure the files flexibly and create and deploy mechanisms automatically.The container is a virtualization technology based on sharing Linux kernel,which can reach the resource utilization close to the physical host.Docker emerging is a lightweight container of virtualization technology,and in the complex cluster system construction,it is portable and easy to use,with cross-platform.So,in the complicated distributed deployment of application clusters,Docker can be rapid,accurate,and standardized packaged applications and deploy automatically whole runtime environment.Therefore,Docker is one of the mature implementation scheme of the container virtualization technology.It is verified by the experiment that the Docker is better than traditional virtualization technology in reading/writing performance,and the Hadoop platform based on the Docker is established and the advantage of Hadoop on Docker is discussed.

Hadoop;virtualization;container;Docker

TP31

A

1673-629X(2016)09-0099-05

10.3969/j.issn.1673-629X.2016.09.023

2015-12-03

2016-04-06< class="emphasis_bold">網(wǎng)絡(luò)出版時(shí)間:

時(shí)間:2016-08-01

國家自然科學(xué)基金資助項(xiàng)目(61171053);南京郵電大學(xué)基金(SG1107)

趙樂樂(1992-),男,研究方向?yàn)橛?jì)算機(jī)云計(jì)算與大數(shù)據(jù)應(yīng)用;黃 剛,教授,研究方向?yàn)橛?jì)算機(jī)軟件理論及應(yīng)用。

http://www.cnki.net/kcms/detail/61.1450.TP.20160801.0909.072.html

猜你喜歡
鏡像虛擬化容器
容器倒置后壓力壓強(qiáng)如何變
鏡像
難以置信的事情
基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
鏡像
對(duì)基于Docker的虛擬化技術(shù)的幾點(diǎn)探討
淺析虛擬化技術(shù)的安全保障
H3C CAS 云計(jì)算管理平臺(tái)上虛擬化安全防護(hù)的實(shí)現(xiàn)
取米
鏡像
城口县| 涿鹿县| 孝昌县| 荣成市| 玉环县| 林西县| 潮州市| 孝义市| 分宜县| 奉节县| 徐汇区| 陆丰市| 察隅县| 肥乡县| 桐乡市| 厦门市| 南澳县| 张北县| 兴安盟| 清苑县| 特克斯县| 牡丹江市| 庄河市| 稷山县| 堆龙德庆县| 涿鹿县| 巫溪县| 翁牛特旗| 西贡区| 鱼台县| 南宫市| 龙南县| 轮台县| 连城县| 道孚县| 鄂尔多斯市| 饶平县| 仁布县| 潞西市| 迭部县| 肇庆市|