HadoopDoctor:來自騰訊數據倉庫TDW的MR診斷系統

jopen 10年前發布 | 15K 次閱讀 分布式/云計算/大數據 HadoopDoctor

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

        HadoopDoctor介紹

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

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

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

        

 HadoopDoctor:來自騰訊數據倉庫TDW的MR診斷系統

 

        作業信息采集與存儲

        1、MapReduce V1架構下的HadoopDoctor

        

 HadoopDoctor:來自騰訊數據倉庫TDW的MR診斷系統

 

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

        2、Corona/MapReduce V2架構下的HadoopDoctor

        

 HadoopDoctor:來自騰訊數據倉庫TDW的MR診斷系統

 

        從Corona架構開始,MapReduce便實現了 JobTracker分散化功能,集群資源調度由ClusterManager(簡稱CM)實現,JobTracker作為進程運行在子節點 CoronaTaskTracker(簡稱CTT)上面,只負責監控一個MR作業的運行管理。MapReduce V2也是實現了JobTracker分散化功能,集群的資源調度由ResourceManager(簡稱RM)實現,JobTracker抽象成 ApplicaitonMaster(簡稱AM)作為一個Container運行在子節點NodeManager(簡稱NM)上面,只負責監控一個MR作 業的運行管理。Corona/Mapreduce V2的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語句對數據進行統計分析。

        數據使用

        提供前臺頁面供用戶查詢作業的詳細信息。

        建立指標檢測MapReduce計算引擎的健康度。

        參考鏈接:http://mta.qq.com/mta/bigdata/?p=633

        本文來源:標點符

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!