White Elephant:開發(fā)者必備的Hadoop利器
LinkedIn是全球最大的職業(yè)社交網(wǎng)站,從2002年12月創(chuàng)立到2013年初,LinkedIn注冊用戶已到2億,平均每秒增加一個新用戶,86%的“財富100強企業(yè)”正在使用LinkedIn的付費解決方案,270萬個公司主頁在此安家落戶,用戶每年發(fā)起超過幾十億次搜索。為了應(yīng)對這些超大數(shù)據(jù),LinkedIn使用Hadoop進行產(chǎn)品開發(fā),并且為了更好地理解LinkedIn在所有用例中的Hadoop集群使用情況,他們創(chuàng)建了White Elephant。
以下為文章全文:
隨著Hadoop的發(fā)展,調(diào)度、容量規(guī)劃和計費已成為其關(guān)鍵問題,這些都是公開的問題。今天,我們高興地宣布我們開源LinkedIn的解決方案:White Elephant。
在LinkedIn,我們使用Hadoop進行產(chǎn)品開發(fā)(如People You May Know和Endorsements那樣的預(yù)測分析應(yīng)用),為了更好地理解我們在所有用例中的Hadoop集群使用情況,我們創(chuàng)建了White Elephant。
雖然Ganglia這樣的工具提供了系統(tǒng)級指標,但我們還是希望能夠了解每個用戶在任何時間所使用的資源。White Elephant解析Hadoop日志為Hadoop集群提供了逐層向下監(jiān)視以及任務(wù)統(tǒng)計匯總,包括總?cè)蝿?wù)時間、使用的時段、CPU時間和失敗的工作項。
White Elephant滿足了以下幾個需求:
調(diào)度:White Elephant具有在利用率較低的時段安排工作的能力,最大限度地提高集群效率。
容量規(guī)劃:可計劃未來的硬件需求,了解作業(yè)資源使用量的增長。
計費:Hadoop集群的容量有限,所以在多租戶環(huán)境中White Elephant可針對作業(yè)商業(yè)價值的大小來分配使用的資源。
在這篇文章中,我們將分享White Elephant的架構(gòu),并展示了一些它提供的可視化效果。我們已在GitHub上公布代碼,你可以自己嘗試一下!
架構(gòu)
White Elephant架構(gòu)圖

這張圖里分別有A、B、C這三個Hadoop網(wǎng)格,White Elephant將計算統(tǒng)計如下:
上傳任務(wù):任務(wù)定期運行在Job Tracker上,并逐步拷貝新的日志文件到一個Hadoop網(wǎng)格進行分析。
計算: MapReduce作業(yè)的順序通過Job Executor進行協(xié)調(diào),解析上傳的日志并計算匯總統(tǒng)計。
查看:一個查看器應(yīng)用逐步加載匯總統(tǒng)計數(shù)據(jù),緩存到本地,并公開一個Web界面,該做法可以細分Hadoop集群的統(tǒng)計數(shù)據(jù)。
例子
以下是我們實際使用的情況:我們在過去幾個月里注意到集群使用情況的增加,但沒人對此負責(zé)。我們可以使用White Elephant來調(diào)查這個問題。
下圖顯示了過去幾個月里一個示例數(shù)據(jù)集每周被使用的總時數(shù),你會注意到,自1月中旬以來,每周的集群使用量基線從6000小時大約增加到了10000小時。

在上圖中,整個數(shù)據(jù)集都被挑選出來檢查,因此所有用戶的數(shù)據(jù)都被組合在一起,讓我們看看前20名用戶的堆疊圖。

現(xiàn)在我們可以看到前20名用戶的個人每周使用情況。剩下的46個用戶已經(jīng)被組合成一個單一的指標。幾個用戶在可疑的集群使用組中脫穎而出,所以我們將進行更深的挖掘。
我們可以將鼠標懸停在圖例上來突出顯示這些用戶。

使用拖放操作,我們可以重新安排列表以便這些用戶出現(xiàn)在底部。

看起來像4個用戶已展示出顯著的使用率增加:用戶1和用戶2的使用量在1月中旬開始增加,而用戶43和用戶65的使用量在12月左右開始穩(wěn)步攀升。
如果我們不希望看到這些用戶的集群使用情況,我們可以在圖例中取消對他們的選中。

一旦我們排除了這些用戶,我們可以看到集群的使用情況在這段時間內(nèi)沒有明顯地改變,因此我們已經(jīng)確定了我們的罪魁禍首。
讓我們追溯這四個用戶,用戶可以選擇一個多選控制,一個過濾器使它很容易通過名字來搜索特定的用戶。

如何將這四個用戶與其他人相比呢?為方便起見,其余用戶被聚合在一起,包括:只選擇總指標,并將其移動到頂部。

通過White Elephant,我們已經(jīng)找到了問題所在,這要歸功于Hadoop使用情況中前所未有的可視性。我們甚至可以得到一個表,從CSV中列出被查詢的數(shù)據(jù)。

開源
White Elephant是開源的,并且可在Apache 2許可下自由使用。像往常一樣,我們歡迎貢獻!