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

?

Hadoop集群作業(yè)調(diào)度算法優(yōu)化技術(shù)研究

2016-05-14 12:28單冬紅郭靜博趙偉艇
現(xiàn)代電子技術(shù) 2016年6期
關(guān)鍵詞:云計(jì)算集群

單冬紅 郭靜博 趙偉艇

摘 要: 針對當(dāng)前云計(jì)算技術(shù)的廣泛使用,提出對Hadoop集群作業(yè)調(diào)度算法進(jìn)行研究的構(gòu)想。在對Hadoop新版本中提出的Hadoop Map Reduce V2(Yarn)框架進(jìn)行深入研究的基礎(chǔ)上,設(shè)計(jì)一個詳細(xì)完整的對比實(shí)驗(yàn),針對各種作業(yè)調(diào)度算法的優(yōu)勢與不足進(jìn)行全面的測試。通過使用不同的作業(yè)調(diào)度算法運(yùn)行相同的作業(yè),進(jìn)行細(xì)致橫向的對比,并得到各種作業(yè)調(diào)度算法之間以及計(jì)算框架之間在計(jì)算能力、運(yùn)行時間、資源占用等方面的優(yōu)劣。實(shí)驗(yàn)結(jié)果表明,公平調(diào)度算法和計(jì)算能力調(diào)度算法相較于傳統(tǒng)的FIFO算法具有更靈活、更高效的特點(diǎn)。

關(guān)鍵詞: 云計(jì)算; Hadoop; HDFS; 作業(yè)調(diào)度; 集群

中圖分類號: TN911?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)06?0025?05

Research on optimization technology of Hadoop cluster job scheduling algorithm

SHAN Donghong, GUO Jingbo, ZHAO Weiting

(School of Software Engineering, Pingdingshan University, Pingdingshan 467002, China)

Abstract: Conception of studying Hadoop cluster job scheduling algorithm is composed in allusion to extensive application of the current cloud computing technology. According to the deep study of Hadoop Map Reduce V2 (Yarn) in the new edition Hadoop, a complete contrast experiment was designed, and the advantages and disadvantages of all kinds of job scheduling algorithms were tested. The comparison was carefully made by applying the different job scheduling algorithms on the same job. The differences and characters in calculation ability, operation time, and resource occupation of all the job scheduling algorithms and calculation frameworks were obtained. The experimental results show that the fair scheduling algorithm and the calculation capacity scheduling algorithm are more flexible and more efficient than the traditional FIFO scheduling algorithm.

Keywords: cloud computing; Hadoop; HDFS; job scheduling; cluster

隨著科學(xué)技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)中所容納的數(shù)據(jù)規(guī)模正在以一種爆發(fā)式的增長速度激增。應(yīng)用的豐富和數(shù)據(jù)規(guī)模的增長,使得云計(jì)算的使用者對于功能的需求已經(jīng)大大超出了原有的云計(jì)算平臺所能提供的能力范圍[1]。Hadoop作為一個開源的云計(jì)算平臺的代表,在近些年得到了十分廣泛的應(yīng)用。對Hadoop作業(yè)調(diào)度算法的研究對研究整個Hadoop平臺、提升平臺的資源利用率有著至關(guān)重要的意義。

近年來,國內(nèi)外的相關(guān)學(xué)者對Hadoop中的作業(yè)調(diào)度以及資源管理等方面技術(shù)進(jìn)行了十分深入的研究。但是由于云計(jì)算模式這種特有的商業(yè)服務(wù)的特點(diǎn),加之目前仍處于研究的初級階段,所以對作業(yè)調(diào)度的研究仍然相對偏少。作業(yè)調(diào)度的優(yōu)劣直接影響到云計(jì)算平臺的性能和資源利用率[2]。對作業(yè)調(diào)度算法的研究對提高Hadoop的運(yùn)算效率、優(yōu)化資源利用都起著至關(guān)重要的作用。本文對Hadoop集群作業(yè)調(diào)度算法進(jìn)行研究,重點(diǎn)通過實(shí)驗(yàn)對比相關(guān)算法的優(yōu)劣,為Hadoop的后續(xù)開發(fā)奠定一定的技術(shù)基礎(chǔ)。

1 Hadoop平臺及其作業(yè)調(diào)度算法

Hadoop是Apache基金會開發(fā)的一個分布式系統(tǒng)架構(gòu),是由很多子項(xiàng)目組成的集合[3]。除了大家都熟知的HDFS,MapReduce以及HBase三個核心的技術(shù)之外,Hadoop還有很多其他的用于數(shù)據(jù)處理和分析的組件,并且也逐漸開始得到十分廣泛的應(yīng)用,這些組件之間往往在功能上實(shí)現(xiàn)了互補(bǔ),從而更加完善了整個Hadoop平臺。Hadoop的組件架構(gòu)圖如圖1所示。

Hadoop對Google的GFS進(jìn)行了實(shí)現(xiàn),形成了自己的分布式文件系統(tǒng)(Hadoop Distribute File System,HDFS)。HDFS是Hadoop的一個核心的子項(xiàng)目。為了提升Hadoop平臺的吞吐量,程序都能采用流式的形式訪問數(shù)據(jù),在HDFS設(shè)計(jì)之時,更多地考慮到了對數(shù)據(jù)進(jìn)行批量處理。由于HDFS的特殊設(shè)計(jì),使得主控節(jié)點(diǎn)并不需要占用特別多的資源就可以處理規(guī)模較大的文件。

Hadoop上的作業(yè)調(diào)度算法負(fù)責(zé)管理作業(yè)調(diào)度的全部過程,這個過程中包括資源的重新分配、節(jié)點(diǎn)的選擇等操作。在Hadoop框架中主要有三種作業(yè)調(diào)度器。它們分別是:先進(jìn)先出調(diào)度器(First In First Out Scheduler),公平調(diào)度器(Fair Scheduler)以及計(jì)算能力調(diào)度器(Capacity Scheduler)。隨著Hadoop0.23.0版本的發(fā)布,Hadoop提出了一種新的Map Reduce框架(即Yarn)。

新發(fā)布的Yarn框架相較于早前的Map Reduce框架具有了較多的優(yōu)點(diǎn),通過使用新的Resource Manager降低了原有的Job Tracker對整個集群資源的占用。Yarn不是通過使用槽的概念進(jìn)行資源的管理,而是將內(nèi)存作為資源管理的基本單位[4]。作業(yè)中任務(wù)的運(yùn)行情況在Yarn中都是通過Application Master進(jìn)行監(jiān)控,取代了原先版本在Job Tracker 的功能,Yarn中的Container框架實(shí)現(xiàn)了Java虛擬機(jī)的內(nèi)存隔離,在以后的版本中可能會加入對資源管理的支持[5]。

2 實(shí)驗(yàn)環(huán)境的構(gòu)建

實(shí)驗(yàn)中的Hadoop集群是由實(shí)驗(yàn)室中的3臺服務(wù)器構(gòu)成。其網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖如圖2所示。其名字節(jié)點(diǎn)的名字為h1,其IP地址是178.178.1.31。其余2臺服務(wù)器為數(shù)據(jù)節(jié)點(diǎn),名字分別為h2、h3,IP地址分別為178.178.1.32和178.178.1.33。集群節(jié)點(diǎn)的配置如表1所示。

實(shí)驗(yàn)過程中首先安裝的Hadoop的版本是Hadoop?1.0.4。具體的安裝過程如下:

(1) 首先要關(guān)閉集群中各臺服務(wù)器的防火墻和Selinux;

(2) 修改各臺服務(wù)器的主機(jī)名;

(3) 關(guān)閉DHCP,將各臺服務(wù)器的IP地址修改為靜態(tài)IP地址;

(4) 修改Host文件,使其能夠解析主機(jī)名字;

(5) 為各臺服務(wù)器安裝JDK;

(6) 為各臺服務(wù)器安裝SSH服務(wù);

(7) 配置名字節(jié)點(diǎn)的主機(jī)能夠無密碼SSH登錄到數(shù)據(jù)節(jié)點(diǎn)的從機(jī)以及自己;

(8) 將hadoop?1.0.4?bin.tar.gz包拷貝到主控機(jī)器上;

(9) 對配置文件進(jìn)行修改;

(10) 將配置好的文件通過網(wǎng)絡(luò)發(fā)送給兩臺從機(jī);

(11) 對從機(jī)進(jìn)行部署。

由于對比需要,測試環(huán)境需要安裝Hadoop2.2.0版本。由于一些公共環(huán)境的配置與Hadoop1.0.4版本的配置相同,所以上述過程的前6步不需要進(jìn)行改動。Hadoop 2.2.0版本的簡要的配置過程如下:

(1) 解壓Hadoop 2.2.0壓縮包;

(2) 修改hadoop?env.sh,yarn?env.sh,slaves,core?site.xml,hdfs?site.xml,mapred?site.xml,yarn?site.xml文件的內(nèi)容;

(3) 將配置文件復(fù)制到其他的節(jié)點(diǎn);

(4) 啟動Hadoop。

Ganglia可以把檢測到的資源信息通過圖表的形式在網(wǎng)頁上面展示給用戶,這對資源的合理利用分配,提升系統(tǒng)資源利用率有著非常重要的作用。安裝Ganglia也需要安裝一些第三方的軟件庫。具體的安裝步驟如下:

(1) 安裝32位系統(tǒng)EP EL的rpm文件包;

(2) 在服務(wù)器端安裝Ganglia;

(3) 在監(jiān)控端安裝Ganglia;

(4) 監(jiān)控端配置Ganglia;

(5) 服務(wù)器端配置Ganglia;

(6) 啟動服務(wù);

(7) 服務(wù)器端Apache配置。

安裝上述過程配置好后,在瀏覽器中輸入http://

178.178.1.31/ganglia即可進(jìn)入Ganglia集群監(jiān)控頁面。

3 實(shí)驗(yàn)的實(shí)施

以下主要通過實(shí)驗(yàn)對比的形式,比較各調(diào)度算法在不同情況下執(zhí)行過程中所表現(xiàn)出來的差異。通過針對多個測試程序,使用多類型的作業(yè)在不同的作業(yè)調(diào)度算法下分別執(zhí)行。通過這種交叉對比實(shí)驗(yàn)的模式得出實(shí)驗(yàn)數(shù)據(jù)。

通過運(yùn)行命令在/terasort路徑下生成大小分別為1 GB,10 MB以及15 MB的三組待排序的原始數(shù)據(jù)。這樣的設(shè)計(jì)思路是:通過一個量級較大的作業(yè)以及兩個規(guī)模相類似的較小的作業(yè),對比在不同的調(diào)度算法中各種規(guī)模作業(yè)的運(yùn)行時間和響應(yīng)情況。

分別在Hadoop 1.0.4和Hadoop 2.2.0中運(yùn)行TeraGen生成數(shù)據(jù)。需要注意的是,由TeraGen生成的數(shù)據(jù)的單位是行,并且每行的大小是100 B。所以根據(jù)要生成的總的數(shù)據(jù)量就可以計(jì)算出命令中需要使用的參數(shù)。接下來分別在三個控制臺中提交這三個排序作業(yè),為了確保該實(shí)驗(yàn)對比性質(zhì)明顯,在調(diào)用不同調(diào)度算法進(jìn)行測試的時候也應(yīng)該保持作業(yè)的提交順序相同。

分別在Hadoop 2.2.0環(huán)境下以及Hadoop 1.0.4中使用三種作業(yè)調(diào)度算法分別生成1 GB,15 MB以及10 MB的數(shù)據(jù)。

3.1 TeraSort測試

(1) 使用FIFO作業(yè)調(diào)度算法運(yùn)行。使用默認(rèn)的FIFO作業(yè)調(diào)度算法進(jìn)行作業(yè)調(diào)度,在三個控制臺中分別按照順序提交這三個作業(yè),三個排序作業(yè)運(yùn)行時間情況如表2所示。

由表2可以看出由于FIFO調(diào)度算法的局限性,只是簡單的根據(jù)作業(yè)提交的前后的順序進(jìn)行調(diào)度。所以使得后面提交的兩個作業(yè)量相對較小的作業(yè)執(zhí)行實(shí)現(xiàn)受到了第一個提交的大作業(yè)的影響。由于都在等第一個作業(yè)的完成,所以運(yùn)行時間都要比單獨(dú)運(yùn)行的時間要長。

(2) 使用公平調(diào)度算法運(yùn)行。將Hadoop集群的作業(yè)調(diào)度算法改為公平調(diào)度算法,將fair scheduler的jar包拷貝到lib目錄下,然后修改mapred?site.xml文件的內(nèi)容,保存編輯好的上述文件后,重啟jobtracker。重新運(yùn)行TeraSort排序程序,仍然按照與使用FIFO調(diào)度算法進(jìn)行實(shí)驗(yàn)時候相同的作業(yè)提交順序[6]。執(zhí)行完成上述實(shí)驗(yàn)操作之后,統(tǒng)計(jì)試驗(yàn)中各個作業(yè)的運(yùn)行時間情況,具體數(shù)據(jù)如表3所示。

通過作業(yè)的運(yùn)行時間表看出,在公平調(diào)度算法進(jìn)行作業(yè)調(diào)度時,作業(yè)的提交時間并沒有成為進(jìn)行調(diào)度的依據(jù),而是確保每個提交的作業(yè)都可以盡量平均地使用集群的資源。

(3) 計(jì)算能力調(diào)度算法。以下實(shí)驗(yàn)采用計(jì)算能力調(diào)度算法,具體的配置步驟是首先將capacity scheduler的jar包拷貝到lib目錄下,然后對mapred?site.xml文件的內(nèi)容進(jìn)行修改。完成上述配置后,重啟Hadoop。重新運(yùn)行TeraSort排序程序,三個排序作業(yè)運(yùn)行時間情況如表4所示。

通過實(shí)驗(yàn)結(jié)果可以看出,由于計(jì)算能力調(diào)度算法支持多個作業(yè)隊(duì)列,各個作業(yè)隊(duì)列之間的資源可以動態(tài)做出調(diào)整,本次實(shí)驗(yàn)中的各個作業(yè)的整體運(yùn)行時間較使用默認(rèn)的FIFO調(diào)度算法時有所提升。當(dāng)集群規(guī)模足夠大,作業(yè)數(shù)目增多時,可以預(yù)見將對集群整體的吞吐量帶來較大的提升。

3.2 WordCount測試

WordCount的主要功能是獲取出入文件中的單詞出現(xiàn)的次數(shù)。實(shí)驗(yàn)中所使用的測試文件為三篇英文小說,先將這三篇小說拷貝到HDFS中,輸入文件創(chuàng)建好之后,就可以分別運(yùn)行幾種調(diào)度算法執(zhí)行測試。

(1) 使用FIFO作業(yè)調(diào)度算法運(yùn)行。使用默認(rèn)的FIFO作業(yè)調(diào)度算法進(jìn)行作業(yè)調(diào)度,在三個控制臺中分別按照順序提交這三個作業(yè),每個作業(yè)的運(yùn)行情況如表5所示。

(2) 使用公平調(diào)度算法運(yùn)行。修改mapred?s ite. xml文件,將作業(yè)調(diào)度算法更換為公平調(diào)度算法,并重新按照同樣的操作方式執(zhí)行上述過程,每個作業(yè)的運(yùn)行情況如表6所示。

(3) 計(jì)算能力調(diào)度算法。以下實(shí)驗(yàn)采用計(jì)算能力調(diào)度算法,具體的配置步驟是首先將capacity scheduler的jar包拷貝到lib目錄下,然后對mapred?site.xml文件的內(nèi)容進(jìn)行修改,每個作業(yè)的運(yùn)行情況如表7所示。

3.3 Grep測試

Grep測試程序主要完成的是對指定文檔里面的指定的的單詞進(jìn)行出現(xiàn)次數(shù)的計(jì)算,在Grep程序運(yùn)行時將對CPU資源造成較大的消耗。

(1) 使用FIFO作業(yè)調(diào)度算法運(yùn)行。使用默認(rèn)的FIFO作業(yè)調(diào)度算法進(jìn)行作業(yè)調(diào)度,在三個控制臺中分別按照順序提交三個作業(yè)。

(2) 使用公平調(diào)度算法運(yùn)行。修改mapred?site.xml文件,將作業(yè)調(diào)度算法更換為公平調(diào)度算法,并重新按照同樣的操作方式執(zhí)行上述過程。

(3) 計(jì)算能力調(diào)度算法。采用計(jì)算能力調(diào)度算法,具體配置步驟是先將capacity scheduler的jar包拷貝到lib目錄下,然后對mapred?site.xml文件的內(nèi)容進(jìn)行修改。

3.4 Pi測試

Pi程序采用Quasi?Monte Carlo算法對Pi的值進(jìn)行估算。通過運(yùn)行測試實(shí)驗(yàn),分別在使用FIFO調(diào)度算法、公平調(diào)度算法和公平能力調(diào)度算法以及在Yarn框架中執(zhí)行Pi程序之后,得到的整個集群負(fù)載情況見圖3。

4 實(shí)驗(yàn)結(jié)果分析與研究

第三節(jié)對實(shí)驗(yàn)的過程進(jìn)行了詳要的介紹。以下將實(shí)驗(yàn)中獲得的信息進(jìn)行整合。使用Hadoop 1.0.4版本結(jié)束實(shí)驗(yàn)后,集群的主要負(fù)載情況如圖4所示。

<各種測試實(shí)驗(yàn)中的作業(yè)平均運(yùn)行時間如圖5所示。

使用Hadoop 2.2.0版本實(shí)驗(yàn)過程結(jié)束后,集群的主要負(fù)載情況如圖6所示。

各種測試實(shí)驗(yàn)中的作業(yè)平均運(yùn)行時間如圖7所示。

從上述實(shí)驗(yàn)結(jié)果可以看出,在執(zhí)行WordCount程序時,各個算法之間無論是在集群負(fù)載還是在運(yùn)行時間方面所體現(xiàn)出來差異并不是十分明顯,這主要說明當(dāng)輸入的數(shù)據(jù)集的規(guī)模沒有足夠大的時候,調(diào)度算法沒有辦法充分發(fā)揮其優(yōu)勢。

在Pi程序的測試實(shí)驗(yàn)設(shè)計(jì)中,使用的是單個作業(yè)的提交,所以三種算法之間的作業(yè)運(yùn)行時間基本一致。對比TaraGen和TeraSort程序,在TeraGen測試程序中,使用公平能力調(diào)度算法時由于是使用了多個用戶分別提交作業(yè),所以各個作業(yè)隊(duì)列之間的作業(yè)可以并行執(zhí)行,所以其運(yùn)行時間要大大低于使用FIFO調(diào)度算法時的運(yùn)行時間。而在TeraSort測試程序中所涉及的實(shí)驗(yàn)步驟為沒有使用多個用戶分別提交,由于單個作業(yè)隊(duì)列中使用的仍然是FIFO作業(yè)調(diào)度算法,可以看出在這種情況下的公平能力調(diào)度算法相比于FIFO調(diào)度算法并不具有什么優(yōu)勢。而相比于使用Hadoop 1.0.4版本測試時候的實(shí)驗(yàn)結(jié)論,可以看出在Hadoop 2.2.0版本中,由于對原有的Hadoop框架進(jìn)行了優(yōu)化,在目前的實(shí)驗(yàn)環(huán)境下,仍然可以看到其在執(zhí)行效率、資源消耗等方面帶來的顯著提升。

從實(shí)驗(yàn)結(jié)論還可以得出,即便是在相同作業(yè)使用相同的作業(yè)調(diào)度算法的情況下,如果采取的配置不同,往往也會對集群的效率造成影響。這種情況下,在選擇公平調(diào)度算法或計(jì)算能力調(diào)度算法時,需要注意結(jié)合集群中的實(shí)際情況設(shè)置合適的資源池或者作業(yè)隊(duì)列的數(shù)量和大小,以便發(fā)揮這兩種作業(yè)調(diào)度算法在處理多用戶情況時所具有的優(yōu)勢,提升整個集群的資源利用率。

5 結(jié) 語

本文通過對開源云計(jì)算平臺Hadoop的研究,在實(shí)驗(yàn)室服務(wù)器上搭建了一個小型的Hadoop集群,并結(jié)合對集群資源進(jìn)行實(shí)時監(jiān)控的工具Ganglia實(shí)時對整個集群的硬件資源以及網(wǎng)絡(luò)情況進(jìn)行監(jiān)控,實(shí)時地了解整個集群的運(yùn)行情況。通過對Hadoop平臺的作業(yè)調(diào)度算法的研究,并通過具體的實(shí)驗(yàn)測試各種調(diào)度算法的實(shí)際性能。在進(jìn)行實(shí)驗(yàn)操作的過程中,利用集群資源監(jiān)測軟件Ganglia實(shí)時地對實(shí)驗(yàn)中集群的使用情況進(jìn)行監(jiān)測。實(shí)驗(yàn)結(jié)果表明,公平調(diào)度算法和計(jì)算能力調(diào)度算法相較于傳統(tǒng)的FIFO算法具有更靈活、更高效的特點(diǎn)。當(dāng)前的一些作業(yè)調(diào)度算法在具體的實(shí)際應(yīng)用中也都存在著一些缺陷和不足。在未來的工作中,要跟據(jù)具體的作業(yè)需求,不斷地去優(yōu)化和改進(jìn)對作業(yè)的調(diào)度。并通過詳盡的實(shí)驗(yàn)測試,以驗(yàn)證算法的性能,并且不斷地加以改進(jìn)。

參考文獻(xiàn)

[1] SHVACHKO Konstantin, KUANG Hairong, RADIA Sanjay, et al. The Hadoop distributed file system [J/OL]. [2011?09?17]. duanple.blog.163.com .

[2] 張建勛,古志民,鄭超.云計(jì)算研究進(jìn)展綜述[J].計(jì)算機(jī)應(yīng)用研究,2010,27(2):429?433.

[3] WHITE T,周敏奇,錢衛(wèi)寧,等.Hadoop權(quán)威指南[M].北京:清華大學(xué)出版社,2011.

[4] TAI Stefan, NIMIS Jens, LENK Alexander, et al. Cloud service engineering [J/OL]. [2011?05?09]. www.docin.com/p?200029455.html.

[5] 張向豐.改進(jìn)的蟻群引導(dǎo)電網(wǎng)系統(tǒng)云數(shù)據(jù)聚類故障檢測[J].科技通報(bào),2014,30(10):187?189.

[6] 趙曉冰.Hadoop平臺下的作業(yè)調(diào)度算法的研究[D].鄭州:鄭州大學(xué),2013.

猜你喜歡
云計(jì)算集群
海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
勤快又呆萌的集群機(jī)器人
基于云計(jì)算的移動學(xué)習(xí)平臺的設(shè)計(jì)
實(shí)驗(yàn)云:理論教學(xué)與實(shí)驗(yàn)教學(xué)深度融合的助推器
云計(jì)算中的存儲虛擬化技術(shù)應(yīng)用
中宁县| 郑州市| 遂昌县| 宣城市| 正蓝旗| 泾阳县| 厦门市| 库尔勒市| 天等县| 房山区| 莱芜市| 榕江县| 台东市| 化州市| 耒阳市| 长武县| 科技| 庆城县| 乌鲁木齐县| 衡阳县| 太和县| 桐庐县| 广宗县| 泾阳县| 永德县| 平原县| 寿阳县| 丰宁| 南京市| 五常市| 炎陵县| 台湾省| 辉县市| 凌源市| 龙州县| 屏边| 奈曼旗| 乐安县| 新宁县| 修武县| 安义县|