LinkedIn開源Dr. Elephant
今天 LinkedIn 宣布開源 Dr. Elephant,Dr. Elephant 能夠很好地幫助用戶理解、分析和優化 Hadoop 和 Spark 的工作流。LinkedIn 在去年第八屆 Hadoop Summit 上第一次在社區呈現。
動機
Hadoop 是一個分布式數據存儲和大數據處理框架,體量大、組件復雜,因而每個組件的性能優化就顯得異常重要。在優化底層硬件資源,網絡架構,OS 和其它堆棧的同時,也需要對集群上運行的任務進行優化。
什么是 Dr. Elephant?
Dr. Elephant 是一個 Hadoop 和 Spark 的性能監控和調優工具。Dr. Elephant 能自動化收集所有指標,進行數據分析,并以簡單易用的方式進行呈現。Dr. Elephant 的目標是提高開發人員的開發效率和增加集群任務調試的高效性。Dr. Elephant 支持對 Hadoop 和 Spark 任務進行可插拔式、配置化以及基于規則的啟發式 job 性能分析,并且根據分析結果給出合適的建議來指導如何調優使任務更有效率。
為什么選擇 Dr. Elephant?
其它開源或者商用 Hadoop 優化工具都是收集系統資源指標和監控集群資源信息,關注點僅在于簡化 Hadoop 集群的發布和管理,而很少有工具是來幫助 Hadoop 優化任務流。這些工具不支持 Hadoop 集群的規模化和 Hadoop 框架的增長,而 Dr. Elephant 支持 Hadoop 生態的各種框架,并且很容易的擴展到新的框架,已經支持 Spark。Dr. Elephant 讓用戶更清晰的掌握 Hadoop 和 Spark 原理,并幫助其輕松的優化任務。
Dr. Elephant 如何工作?
Dr. Elephant 從 YARN Resource Manager 周期性獲取所有最近運行成功和失敗的應用列表,然后從 Job History Server 中攫取每個應用的元數據,包括 job counters、任務配置和任務數據。有了元數據后,Dr. Elephant 進行啟發式分析,并生成每個任務的診斷報告,從而進行相應的整體優化。Dr. Elephant 將會標記出五個等級問題嚴重性,指出潛在的性能問題。
圖 1 Dr. Elephant 問題等級
圖 2 Dr. Elephant 的面板
通過 Dr. Elephant 的 UI 查看數據面板,見圖2,這里顯示集群的相關統計信息,包括集群上運行的任務數,需要優化的任務數,以及基于啟發式分析發現的嚴重任務數。圖中是最近 24 小時的 Dr. Elephant 分析的所有最近的任務。
圖 3 Dr. Elephant 的搜索頁
Dr. Elephant 提供一個搜索功能,幫助用戶通過任務 ID/應用 ID,執行 ID,任務類型,任務嚴重程度和任務完成時間等來搜索任務。
圖 4 Dr. Elephant 任務頁面
當你點擊指定的搜索結果,會顯示完整的任務信息,并能查看相互引用的任務流。
圖 5 Dr. Elephant 的工作流歷史
圖 6 Dr. Elephant 的任務歷史
Dr. Elephant 的任務歷史和工作流歷史可以幫用戶比較前后執行的區別。Dr. Elephant 通過啟發式計算出每個任務執行的性能得分并作圖。這個圖表可以幫助用戶很直觀的分析哪個性能好。
家庭醫生
Dr. Elephant 在 LinkedIn 非常受歡迎,大家鐘愛其簡潔性。Dr. Elephant 通過簡單的診斷可以解決百分之八十的問題。Dr. Elephant 提供任務級別的建議幫助用戶去理解和優化 Hadoop 工作流。
Dr. Elephant 已經完全和 Hadoop 生態整合。在 LinkedIn,開發人員使用 Dr. Elephant 作為開發流程的一部分,線上任務強制達到綠色級別。
來自: InfoQ