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