Hadoop 集群管理上的新“絕招”
Hadoop在一些企業(yè)部署時(shí),往往會(huì)遇到多個(gè)用戶各自創(chuàng)建的數(shù)據(jù)處理工作的情況。這些工作都運(yùn)行在同一個(gè)Hadoop系統(tǒng)上時(shí),他們之間可能會(huì)彼此沖突,爭奪可用的處理器資源。
David Clubb,在移動(dòng)游戲平臺(tái)和市場公司Chartboost的高級(jí)數(shù)據(jù)工程師,試圖優(yōu)化大數(shù)據(jù)技術(shù),提升產(chǎn)品體驗(yàn)時(shí),也遇到了Hadoop集群管理的問題。“我們正在更新Hadoop軟件,并試圖將其遷移到新的集群,但并沒有找到監(jiān)控集群的好方法,”Clubb說道。“你可以看到工作在運(yùn)行,但你卻不能看到其所使用的資源。”
這樣顯然不太好,因?yàn)榈蛢?yōu)先級(jí)的提取、轉(zhuǎn)換和加載過程和分析工作可能會(huì)占用CPU周期,而具有更高的優(yōu)先級(jí)的工作,例如實(shí)時(shí)的報(bào)告,所獲得的 CPU周期就會(huì)相對(duì)減少。與此同時(shí),集群中的一些計(jì)算節(jié)點(diǎn)可能沒有被充分利用,Clubb說道。這個(gè)問題促使他實(shí)現(xiàn)了一套新的軟件,提供一個(gè)更便捷的窗口來觀察集群資源的活動(dòng)和和實(shí)時(shí)優(yōu)化處理工具的工作負(fù)載,其中包括MapReduce、Hive和Spark等應(yīng)用程序。
用了YARN,卻在原地踏步
今年安裝的Hadoop系統(tǒng)每天處理10億多個(gè)事件,創(chuàng)建一個(gè)龐大的數(shù)據(jù)池,以供業(yè)務(wù)產(chǎn)品線經(jīng)理使用,通過這些數(shù)據(jù),產(chǎn)品經(jīng)理可以了解 Chartboost平臺(tái)被玩家和游戲開發(fā)者使用的情況。首先,Chartboost,運(yùn)行在Cloudera部署在Amazon Web Services 云環(huán)境上的Hadoop分布式平臺(tái)上,僅僅依靠開源框架內(nèi)置的Hadoop YARN調(diào)度程序調(diào)整其工作負(fù)載。但使用YARN,并沒有讓這家舊金山的公司能對(duì)高優(yōu)先級(jí)工作有什么特殊的處理,Clubb說。 他補(bǔ)充說道,Hadoop創(chuàng)建了一些信息,用于集群管理,但由于其開源的架構(gòu)的特性,數(shù)據(jù)被分到不同的地方。自制的腳本可以解決的一些管理問題,但還是不足以解決所有問題。
后來,Clubb發(fā)現(xiàn)創(chuàng)業(yè)公司Pepperdata能夠提供更深層次的視圖,通過該視圖可以觀察Hadoop集群的I / O、內(nèi)存和CPU使用情況。對(duì)于Chartboost更重要的是,Pepperdata軟件可以自動(dòng)降低低優(yōu)先級(jí)工作的占用,給予高優(yōu)先級(jí)應(yīng)用程序額外的運(yùn)行空間,并確保集群中所有的計(jì)算節(jié)點(diǎn)盡可能被有效地利用。
“我們?cè)噲D找出管理工作負(fù)載的***方式——你肯定不想過度使用或未充分使用你的節(jié)點(diǎn),”Clubb說道。“Pepperdata讓硬件的使用更高效。它可以動(dòng)態(tài)地調(diào)整工作。” 使用這個(gè)軟件,減少了公司所需集群節(jié)點(diǎn)的數(shù)量,節(jié)約了Chartboost在云計(jì)算上的花費(fèi)。Clubb說,其Hadoop系統(tǒng)目前有22個(gè)節(jié)點(diǎn),原來的部署時(shí)則有33個(gè)節(jié)點(diǎn)。
多重Hadoop管理選項(xiàng)
Pepperdata是許多供應(yīng)商中的一員,這些供應(yīng)商包括傳統(tǒng)的系統(tǒng)管理軟件制造商,Hadoop分布提供者和類似Concurrent之類的創(chuàng)業(yè)公司,他們采取不同的方式來進(jìn)行Hadoop集群管理流程的自動(dòng)化。位于Sunnyvale, Calif的Pepperdata公司創(chuàng)始人之一,Chad Carson表示,基于處理優(yōu)先級(jí)的自適應(yīng)調(diào)整是Pepperdata軟件的關(guān)鍵元素。 當(dāng)公司把Hadoop大數(shù)據(jù)服務(wù)投入到生產(chǎn)使用中,IT團(tuán)隊(duì)可能需要將保證應(yīng)用程序的性能作為服務(wù)水平協(xié)議的一部分,Carson 說。他認(rèn)為,理解如何利用Hadoop集群資源,并根據(jù)所需進(jìn)行動(dòng)態(tài)修改,對(duì)于企業(yè)來說會(huì)越來越重要。
Hadoop生態(tài)系統(tǒng)的新成員,比如Apache Spark處理引擎,可能會(huì)進(jìn)一步加劇集群管理問題,Carson補(bǔ)充說。“Spark能做的更多,也更快,”他說。”但它在使用中存在高峰期,你會(huì)看到 Spark的工作干擾到了其他工作?;蛘吣銜?huì)看到一個(gè)Spark或HBase工作負(fù)載被延遲所約束,或被低優(yōu)先級(jí)的MapReduce[工作]干涉。”
Hadoop集群管理中的“交通警察”
像Pepperdata一類的軟件可以幫助企業(yè)解決一些阻礙Hadoop使用的問題,Mike Matchett—位于Hopkinton, Mass的 Taneja Group公司分析師如是說。 “做一個(gè)應(yīng)用程序性能管理系統(tǒng)是一回事——而做一個(gè)可以動(dòng)態(tài)地優(yōu)化系統(tǒng)的實(shí)時(shí)控制器是另外一碼事,”Matchett 說道。“如果部署了一個(gè)大的集群,且用于多重用途,那么你就需要一個(gè)“交通警察”。 對(duì)于Clubb來說,下一步可能會(huì)增加Spark的使用,以處理Hadoop數(shù)據(jù)。他提到,早前的工作,使用Pepperdata的軟件支持處理引擎對(duì) Chartboost有了積極的結(jié)果。Clubb說,他有信心可以遷移更多的工作流到Spark,且不會(huì)遇到之前的集群管理問題,“更多工作意味著你更有可能耗盡所有的資源。”