LinkedIn是HTTP://www.aliyun.com/zixun/aggregation/31877.html">全球最大的職業社交網站,從2002年12月創立到2013年初, LinkedIn註冊使用者已到2億,平均每秒增加一個新使用者,86%的「財富100強企業」正在使用LinkedIn的付費解決方案,270萬個公司主頁在此安家落戶,使用者每年發起超過幾十億次搜索。 為了應對這些超大資料,LinkedIn使用Hadoop進行產品開發,並且為了更好地理解LinkedIn在所有用例中的Hadoop集群使用方式,他們創建了White Elephant。
以下為文章全文:
隨著Hadoop的發展,調度、容量規劃和計費已成為其關鍵問題,這些都是公開的問題。 今天,我們高興地宣佈我們開源LinkedIn的解決方案:White Elephant。
在LinkedIn,我們使用Hadoop進行產品開發(如People You May Know和Endorsements那樣的預測分析應用),為了更好地理解我們在所有用例中的Hadoop集群使用方式,我們創建了White Elephant。
雖然Ganglia這樣的工具提供了系統級指標,但我們還是希望能夠瞭解每個使用者在任何時間所使用的資源。 White Elephant解析Hadoop日誌為Hadoop集群提供了逐層向下監視以及任務統計匯總,包括總任務時間、使用的時段、CPU時間和失敗的工作項。
White Elephant滿足了以下幾個需求:
調度:White Elephant具有在利用率較低的時段安排工作的能力,最大限度地提高集群效率。 容量規劃:可計畫未來的硬體需求,瞭解作業資源使用量的增長。 計費:Hadoop集群的容量有限,所以在多租戶環境中White Elephant可針對作業商業價值的大小來分配使用的資源。
在這篇文章中,我們將分享White Elephant的架構,並展示了一些它提供的視覺化效果。 我們已在GitHub上公佈代碼,你可以自己嘗試一下!
架構
White Elephant架構圖
這張圖裡分別有A、B、C這三個Hadoop網格,White Elephant將計算統計如下:
上傳任務:任務定期運行在Job Tracker上,並逐步拷貝新的日誌檔到一個Hadoop網格進行分析。 計算: MapReduce作業的順序通過Job Executor進行協調,解析上傳的日誌並計算匯總統計。 查看:一個檢視器應用逐步載入匯總統計資料,緩存到本地,並公開一個Web介面,該做法可以細分Hadoop集群的統計資料。
例子
以下是我們實際使用的情況:我們在過去幾個月裡注意到集群使用方式的增加,但沒人對此負責。 我們可以使用White Elephant來調查這個問題。
下圖顯示了過去幾個月裡一個示例資料集每週被使用的總時數,你會注意到,自1月中旬以來,每週的集群使用量基線從6000小時大約增加到了10000小時。
在上圖中,整個資料集都被挑選出來檢查,因此所有使用者的資料都被組合在一起,讓我們看看前20名使用者的堆疊圖。
現在我們可以看到前20名使用者的個人每週使用方式。 剩下的46個使用者已經被組合成一個單一的指標。 幾個使用者在可疑的集群使用組中脫穎而出,所以我們將進行更深的挖掘。
我們可以將滑鼠懸停在圖例上來突出顯示這些使用者。
使用拖放操作,我們可以重新安排清單以便這些使用者出現在底部。
看起來像4個使用者已展示出顯著的使用率增加:使用者1和使用者2的使用量在1月中旬開始增加,而使用者43和使用者65的使用量在12月左右開始穩步攀升。
如果我們不希望看到這些使用者的集群使用方式,我們可以在圖例中取消對他們的選中。
一旦我們排除了這些使用者,我們可以看到集群的使用方式在這段時間內沒有明顯地改變,因此我們已經確定了我們的罪魁禍首。
讓我們追溯這四個使用者,使用者可以選擇一個多選控制,一個篩檢程式使它很容易通過名字來搜索特定的使用者。
如何將這四個使用者與其他人相比呢? 為方便起見,其餘使用者被聚合在一起,包括:只選擇總指標,並將其移動到頂部。
通過White Elephant,我們已經找到了問題所在,這要歸功於Hadoop使用方式中前所未有的可視性。 我們甚至可以得到一個表,從CSV中列出被查詢的資料。