飞象网 - 通信人每天必上的网站

首頁|必讀|視頻|專訪|運營|制造|監管|大數據|物聯網|量子|元宇宙|博客|特約記者
手機|互聯網|IT|5G|光通信|人工智能|云計算|芯片報告|智慧城市|移動互聯網|會展
首頁 >> 大數據 >> 正文

OPPO大數據診斷平臺“羅盤”正式開源

2023年4月4日 15:41  CCTIME飛象網  

一、背景

OPPO 大數據平臺目前有 20+個服務組件,數據量超 1EB,離線任務數近百萬,實時任務數千,數據開發分析師超千人。這也帶來了系統復雜度的問題,一方面是用戶經常對自己的任務運行狀況“摸不著頭腦”,不管是性能問題,還是參數配置問題,甚至是一些常見的權限報錯問題,都需要咨詢平臺給出具體的解決方案;另一方面是平臺面對各類繁雜任務,運維人員經常需要對任務故障定位和排除,由于任務鏈路長,組件日志多,運維壓力大。因此急需對任務進行實時監控和診斷,不僅要能夠幫助用戶快速定位異常問題,還需給出具體的建議和優化方案,同時還能治理各類“僵尸”和不合理任務,從而達到降本增效的目的。據調研,目前業界尚無成熟的開源任務診斷平臺。為此我們開發了大數據診斷平臺,通過診斷平臺周優化任務實例數超 2 萬,取得了良好的效果。

“羅盤”(Compass)便是基于 OPPO 內部大數據診斷平臺的開源項目,可用于診斷 DolphinScheduler、Airflow 等調度平臺上所運行的大數據任務。我們希望通過“羅盤”(Compass)回饋開源社區,也希望更多人參與進來,共同解決任務診斷的痛點和難題。

二、羅盤核心功能

羅盤目前已支持以下功能和特性:

非侵入式,即時診斷,無需修改已有的調度平臺,即可體驗診斷效果。

支持多種主流調度平臺,例如 DolphinScheduler、Airflow 或自研等。

支持多版本 Spark、Hadoop 2.x 和 3.x 任務日志診斷和解析。

支持工作流層異常診斷,識別各種失敗和基線耗時異常問題。

支持引擎層異常診斷,包含數據傾斜、大表掃描、內存浪費等 14 種異常類型。

支持各種日志匹配規則編寫和異常閾值調整,可自行根據實際場景優化。

羅盤已支持診斷類型概覽:

(一)非侵入式,即時診斷

這里以 DolphinScheduler 調度平臺為例。

從架構上看,MasterServer 主要負責 DAG 任務切分、任務提交監控并持久化任務實例數據到 DB 中,WorkerServer 主要負責任務的執行和提供日志服務,同時在 UI 提供了查看遠程日志的功能。為了能夠獲取任務元數據和相關日志進行診斷,一個方式是在 MasterServer 中監聽任務狀態事件,另一個方式是訂閱 MySQL binlog 日志。為了減少對 DolphinScheduler 的修改,我們采取了第二種方式。

因此只需要在 DolphinScheduler 創建一個工作流,并運行,等待運行結束,我們便可在羅盤上看到該任務運行失敗等異常。

羅盤不但實現了對調度平臺的解耦,還能在任務運行結束后即時診斷,同時提供了豐富的 UI 展示服務。如果您不需要我們提供的 UI 服務,那也可以直接查詢羅盤診斷的元數據,展示在需要的地方。

(二)工作流層異常診斷

對于工作流層的任務實例,常見問題可分為兩類:一類是失敗的任務,例如首次失敗、最終運行失敗和長期失敗;另一類是耗時異常的任務,例如基線時間異常、基線耗時異常和運行耗時長。

診斷失敗的任務

用戶經常忽略首次失敗,甚至加大重試次數,如果不重視,最終可能會演變為最終失敗。羅盤記錄和診斷分析了每次失敗的原因,不僅可以為用戶快速定位問題,還可以在故障回溯時找到根因。對于長期失敗的任務,需要通知用戶整改或清理,避免造成資源浪費。

診斷耗時異常的任務

針對需要 SLA 保障的任務,羅盤不僅分析了相對于歷史正常結束時間,是否提前結束或者晚點結束的任務,即基線時間異常,也分析了相對于歷史正常運行時長,是否運行時間過長或者過短的任務,即基線耗時異常。對于運行耗時長的任務,例如超過幾個小時以上的大任務,用戶和平臺都需要分析是任務本身的問題,還是平臺的問題。

(三)Spark 引擎層異常診斷

對于 Spark 任務,常見的問題可以歸為三類:一類是運行時報錯,另一類是運行時效率,最后一類是資源使用率問題。

診斷運行時報錯異常

引擎層常見報錯有 sql 失敗、shuffle 失敗和內存溢出等。此類報錯具有明顯的日志特征,可根據關鍵字提取分類,使用已有的知識庫,提供給用戶具體的解決方案,提升用戶體驗和效率。

羅盤提供了 sql 失敗日志分析的規則,通常涉及到操作權限,庫表不存在及語法等問題,此類問題可直接指引用戶去申請權限。

shuffle 問題會嚴重影響任務運行甚至導致失敗,需要重點關注,如果您目前沒有更好的解決方案,也可以參考 OPPO 開源的高性能遠程 shuffle 服務。

內存溢出也是經常導致任務失敗的一大問題,可提取關鍵日志診斷分析并建議用戶優化內存配置參數。

除了以上問題,羅盤還提供了 40+的日志識別規則及建議,也可自行根據實際場景擴展識別規則。

診斷運行時效率異常

如果任務執行耗時較長或者突然變慢,用戶直接在調度平臺無法判斷是任務自身問題,還是調度平臺問題,亦或是計算引擎的問題。為了排查 Spark 引擎,一般需要專業分析 SparkUI,比較不直觀。羅盤對影響引擎執行效率的問題做了全面的檢測,覆蓋大表掃描,數據傾斜,Task 長尾,全局排序,OOM 風險,Job/stage 耗時異常,HDFS 卡頓,推測執行 Task 過多等問題。

大表掃描

羅盤對執行的 SQL 掃描表行數,直觀呈現在表格中。如果用戶沒有進行分區條件篩選,可能會發生全表掃描,需要提醒用戶優化 SQL,避免導致內存溢出和影響集群,以提升運行效率。

數據傾斜

羅盤檢測每個 Task 的數據處理量并判斷數據是否傾斜。當數據傾斜時,可能會導致任務內存溢出,計算資源利用率低,作業執行時間超出預期。

Task 長尾

羅盤檢測所有 Task 的耗時,并按 Stage 呈現在柱狀圖中,方便用戶判斷是哪個 Stage 執行耗時異常。形成的原因一般是讀取數據過多或讀取數據慢。如果是數據傾斜造成讀取數據過多,則按數據傾斜方式處理。如果同時 HDFS 發生卡頓,則會導致讀取數據慢,則需要排查集群問題。

全局排序異常

用戶經常在 SQL 中使用了排序函數卻不加分區限制,會導致全局排序。如果只有一個 Task 處理數據,需要建議用戶重新分區,避免造成資源浪費和影響運行效率。

OOM 預警分析

羅盤檢測執行 SQL 廣播內存占比,當廣播數據過大,會導致 driver 或 executor 出現 OOM 風險,需要提醒用戶禁用廣播或取消強制廣播,必要時申請增加內存。

Job/stage 耗時異常

羅盤計算每個 Job/stage 實際計算時間和空閑時間,一般是資源不足時出現,需要關注集群資源問題。

HDFS 卡頓

當出現 HDFS 卡頓時,會影響 Task 讀取數據速率,從而影響執行效率,需要關注 HDFS 集群運行狀態。

推測執行 Task 過多

推測執行(speculative)是指作業執行單元 Task 在同一個 Stage 中的執行時間相比其他 Task 執行時間長,在其他 Executor 發起相同 Task 執行,先完成的 Task 將 Kill 另個 Task, 并取得結果。需要關注集群運行狀態。

診斷資源使用率異常

對于用戶不確定任務 CPU 和內存使用情況,不知道怎么申請多大規格資源的問題,羅盤直觀呈現了 CPU 和內存使用占比,方便用戶優化資源配置參數,以節約資源成本。

羅盤還提供了 GC 日志分析功能,可查看執行過程 GC 是否存在性能問題。

(四)一鍵診斷、報告總覽等功能

除了以上功能,我們還提供了一鍵診斷的功能,為用戶提供詳細的診斷報告。同時還有報告總覽數據和白名單功能等。

三、羅盤技術架構

羅盤主要由同步工作流層任務元數據模塊、同步 Yarn/Spark App 元數據模塊、關聯工作流層/引擎層 App 元數據模塊、工作流任務異常檢測模塊,引擎層異常檢測模塊,Portal 展示模塊組成。

整體架構圖

整體架構分 3 層:

第一層為對接外部系統,包括調度器、Yarn、HistoryServer、HDFS 等系統,同步元數據、集群狀態、運行環境狀態、日志等到診斷系統分析;

第二層為架構層,包括數據采集、元數據關聯&模型標準化、異常檢測、診斷 Portal 模塊;

第三層為基礎組件層,包括 MySQL、Elasticsearch、Kafka、Redis 等組件。

具體模塊流程階段:

(1)數據采集階段:從調度系統將用戶、DAG、作業、執行記錄等工作流元數據同步至診斷系統;定時同步 Yarn ResourceManager、Spark HistoryServer App 元數據至診斷系統,標志作業運行指標存儲路徑,為后續數據處理階段作基礎;

(2)數據關聯&模型標準化階段:將分步采集的工作流執行記錄、Spark App、Yarn App、集群運行環境配置等數據通過 ApplicationID 介質進行關聯,此時,工作流層與引擎層元數據已關聯完畢,得到數據標準模型 (user, dag, task, application, clusterConfig, time);

(3)工作流層&引擎層異常檢測階段:至此已經獲得數據標準模型,針對標準模型進一步 Workflow 異常檢測流程,同時平臺維護著一套沉淀多年的數據治理知識庫,加載知識庫到標準模型,通過啟發式規則,對標準模型的指標數據、日志同時進行異常挖掘,結合集群狀態及運行是環境狀態,分析得出工作流層、引擎層異常結果;

(4)業務視圖:存儲、分析數據,提供給用戶任務概覽、工作流層任務診斷、引擎層作業 Application 診斷,工作流層展示調度器執行任務引發的異常,如任務失敗、回環任務、基線偏離任務等問題,計算引擎層展示 Spark 作業執行引發的耗時、資源使用、運行時問題;

四、DolphinScheduler & Compass

DolphinScheduler 是一個分布式和可擴展的開源工作流協調平臺,具有強大的 DAG 可視化界面,有著豐富的使用場景,提供 Spark、Hive 和 Flink 等 30+種類型的任務,可靠性高和拓展性強。DolphinScheduler 經歷了多年的實踐和積累,已經成為了一個成熟的開源項目,并有著廣泛的用戶群體。

(一)部署體驗

這里我們以 DolphinScheduler(2.0.6 版本)為例,體驗如何快速集成羅盤。如果你還沒有部署 DolphinScheduler,可參考官網部署指南。如果你已經在使用 DolphinScheduler,那么只需要部署羅盤即可。羅盤支持單機和集群部署,如果你想要快速體驗羅盤的功能,可使用單機部署模式,羅盤依賴 Kafka、Redis、zookeeper 和 ElasticSearch,需要提前安裝,依賴服務完成后即可通過部署腳本進行羅盤部署:

代碼編譯

修改配置

一鍵部署

(二)使用示例

首先在 DolphinScheduler 創建好項目,

然后創建一個 SPARK 任務的工作流,

最后上線該任務和運行。

打開羅盤 Web UI,默認路徑為-,輸入 DolphinScheduler 的賬號密碼,羅盤自動同步了 DolphinScheduler 用戶信息。

最后進入任務運行頁面,便可以看到所有的異常任務診斷信息。

五、羅盤開源規劃

羅盤主要圍繞離線調度任務、計算引擎兩個方面對問題進行定位分析,使用豐富的知識庫,提供給用戶解決優化方案,同時達到降本增效的目的。

目前已開源部分主要包含對任務工作流和 Spark 引擎層的問題診斷,不久將發布針對 Flink 任務的異常和資源問題診斷。

未來將引入更深層次的算法和診斷模型,實現去規則和閾值,使異常診斷更加智能化。

六、參與貢獻

Github項目名稱:cubefs/compass

歡迎參與貢獻,如果您有需求或建議可以提 issue 到 Github,我們將及時為您解答。

關于安第斯智能云

OPPO 安第斯智能云(AndesBrain)是服務個人、家庭與開發者的泛終端智能云,致力于“讓終端更智能”。作為 OPPO 三大核心技術之一,安第斯智能云提供端云協同的數據存儲與智能計算服務,是萬物互融的“數智大腦”。

編 輯:T01
聲明:刊載本文目的在于傳播更多行業信息,本站只提供參考并不構成任何投資及應用建議。如網站內容涉及作品版權和其它問題,請在30日內與本網聯系,我們將在第一時間刪除內容。本站聯系電話為86-010-87765777,郵件后綴為#cctime.com,冒充本站員工以任何其他聯系方式,進行的“內容核實”、“商務聯系”等行為,均不能代表本站。本站擁有對此聲明的最終解釋權。
相關新聞              
 
人物
工信部張云明:大部分國家新劃分了中頻段6G頻譜資源
精彩專題
專題丨“汛”速出動 共筑信息保障堤壩
2023MWC上海世界移動通信大會
中國5G商用四周年
2023年中國國際信息通信展覽會
CCTIME推薦
關于我們 | 廣告報價 | 聯系我們 | 隱私聲明 | 本站地圖
CCTIME飛象網 CopyRight © 2007-2024 By CCTIME.COM
京ICP備08004280號-1  電信與信息服務業務經營許可證080234號 京公網安備110105000771號
公司名稱: 北京飛象互動文化傳媒有限公司
未經書面許可,禁止轉載、摘編、復制、鏡像
主站蜘蛛池模板: 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | 山东包装,山东印刷厂,济南印刷厂-济南富丽彩印刷有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 屏蔽泵厂家,化工屏蔽泵_维修-淄博泵业 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 威客电竞(vk·game)·电子竞技赛事官网 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 聚合甘油__盐城市飞龙油脂有限公司 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 成都中天自动化控制技术有限公司| 伸缩器_伸缩接头_传力接头-巩义市润达管道设备制造有限公司 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 航拍_专业的无人机航拍摄影门户社区网站_航拍网 | 中细软知识产权_专业知识产权解决方案提供商 | 江西自考网-江西自学考试网 | 五轴加工中心_数控加工中心_铝型材加工中心-罗威斯 | AGV叉车|无人叉车|AGV智能叉车|AGV搬运车-江西丹巴赫机器人股份有限公司 | 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 合肥白癜风医院_合肥治疗白癜风医院_合肥看白癜风医院哪家好_合肥华研白癜风医院 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 有源电力滤波装置-电力有源滤波器-低压穿排电流互感器|安科瑞 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 快速门厂家-快速卷帘门-工业快速门-硬质快速门-西朗门业 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 |