HadoopDoctor—TDW MapReduce診斷系統

摘要: TDW是基於Hadoop生態圈研發的大數據處理平臺,MapReduce計算引擎在TDW平臺中承擔了所有的離線數據計算,是TDW最重要的底層支撐平臺之一。在TDW 平臺中,除了MR程序會生成MapReduce作業外,被廣泛應用的Hive、tPig等 ...

前言

  TDW是基於Hadoop生態圈研發的大數據處理平臺,MapReduce計算引擎在TDW平臺中承擔了所有的離線數據計算,是TDW最重要的底層支撐平臺之一。在TDW 平臺中,除了MR程序會生成MapReduce作業外,被廣泛應用的Hive、tPig等計算框架最終也會把查詢語言翻譯成MapReduce作業來進行計算,因此對MapReduce作業運行信息進行收集並提供給開發人員查詢分析,是他們定位業務問題的最重要手段。不僅僅如此,基於收集的MapReduce作業運行信息,還能建立衆多的監控指標來對整個MapReduce計算引擎的健康度進行監控。因此,收集MapReduce作業的運行信息對整個Hadoop平臺的使用和穩定運行都是十分必要的。 

【備註:TDW是騰訊開源項目之一,點此可查看更多TDW內容】


HadoopDoctor介紹

  HadoopDoctor,是TDW專門收集MapReduce作業運行信息的系統。HadoopDoctor不需要對集羣的Hadoop代碼進行修改,是TDW的外圍系統,獨立運行,與Hadoop自帶的HistoryServer服務相比,HadoopDoctor支持作業信息的多維度查詢和支持統計分析。 

  TDW的MapReduce計算引擎經歷了MapReduce V1 -> Corona -> MapReduce V2三個階段。從Corona開始,MapReduce架構便發生了巨大的變化,JobTracker不再是單點,新架構把集羣資源調度和作業管理分開,實現了JobTracker的分散化。同樣,HadoopDoctor的實現架構也經歷了相應的變化。 

  HadoopDoctor的基本架構主要包括作業信息採集與存儲、數據冷備、數據使用: 


作業信息採集與存儲


(1)MapReduce V1架構下的HadoopDoctor


  MapReduce V1是Master-Slaves架構,主節點JobTracker負責集羣資源調度和作業運行管理,每道MR作業執行完成後會生成JobConf文件和JobHisotry文件在JobTracker的本地磁盤上,MapReduceV1架構下的HadoopDoctor作業信息採集是在JobTracker部署一個doctorparser程序,定時對各個作業的JobConf和JobHistory文件進行解析,將解析後的數據寫到tPG數據庫(tPG作爲騰訊商業數據庫的替代方案,基於開源軟件PostgreSQL進行擴展,擁有與商業數據庫類似的特性)。

(2)Corona/MapReduce V2架構下的HadoopDoctor

  從Corona架構開始,MapReduce便實現了JobTracker分散化功能,集羣資源調度由ClusterManager(簡稱CM)實現,JobTracker作爲進程運行在子節點CoronaTaskTracker(簡稱CTT)上面,只負責監控一個MR作業的運行管理。MapReduceV2也是實現了JobTracker分散化功能,集羣的資源調度由ResourceManager(簡稱RM)實現,JobTracker抽象成ApplicaitonMaster(簡稱AM)作爲一個Container運行在子節點NodeManager(簡稱NM)上面,只負責監控一個MR作業的運行管理。Corona/MapreduceV2的MR作業同樣會產生JobConf和JobHistory文件,但由於JobTracker分散化後,這兩個文件也分佈到各個子節點上面,因此作業信息採集需要分佈到各個子節點上面進行。

  新架構下的HadoopDoctor引入DoctorMaster新角色,其職責是從CM/RM獲取子節點列表,定時、分批次地拉起子節點的doctorparser程序對作業的JobConf和JobHistory進行解析寫到tPG,有效控制tPG的寫併發量。

數據冷備 

  目前TDW每天運行的MR作業數超過1百萬,Map Task超過7千萬,Reduce Task超過8百萬,如此龐大的數據會使得tPG服務器的存儲壓力過大,HadoopDoctor的歷史數據必須要實現冷備功能。而TDW本身是數據倉庫,因此用它來做HadoopDoctor的歷史數據存儲是最合適不過了。把歷史數據從tPG導入到TDW的Hive表,不僅僅實現了數據冷備功能,還可以使用TDW-IDE編寫SQL語句對數據進行統計分析。 


數據使用

(1)提供前臺頁面供用戶查詢作業的詳細信息。 
(2)建立指標檢測MapReduce計算引擎的健康度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章