[發明專利]多版本的yarn聚合日志導出方法和系統在審
| 申請號: | 202210047840.8 | 申請日: | 2022-01-17 |
| 公開(公告)號: | CN114510286A | 公開(公告)日: | 2022-05-17 |
| 發明(設計)人: | 王彬 | 申請(專利權)人: | 杭州玳數科技有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 常州佰業騰飛專利代理事務所(普通合伙) 32231 | 代理人: | 陳紅橋 |
| 地址: | 311121 浙江省杭州市余杭區倉前街道余杭*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 版本 yarn 聚合 日志 導出 方法 系統 | ||
本發明提供了一種多版本的yarn聚合日志導出方法和系統,該方法包括以下步驟:采用重寫loadClass方式定義類加載器CustomClassLoader;根據所述類加載器CustomClassLoader并基于SPI實現IExport實現類;基于所述IExport實現類代理ExportProxy代理類;基于所述IExport實現類將所述ExportProxy代理類緩存至ExportCache。根據本發明的多版本的yarn聚合日志導出方法,采用基于SPI實現插件化調用的方式,對于不同版本的hadoop yarn日志能夠采用不同的自定義類加載器進行加載,能夠實現多版本、可擴展的yarn聚合日志導出功能,大大簡化了開發步驟。
技術領域
本發明涉及數據處理技術領域,具體涉及一種多版本的yarn聚合日志導出方法和一種多版本的yarn聚合日志導出系統。
背景技術
相關技術中,在系統中下載指定yarn調度的聚合任務日志時,需要調用并處理yarn的API,過程較為復雜,開發步驟繁瑣,并且在同一系統中對不同版本的hadoop yarn日志進行下載,容易出現由于類沖突導致加載不上的情況。
發明內容
本發明為解決上述技術問題,提供了一種多版本的yarn聚合日志導出方法,采用基于SPI實現插件化調用的方式,對于不同版本的hadoop yarn日志能夠采用不同的自定義類加載器進行加載,能夠實現多版本、可擴展的yarn聚合日志導出功能,大大簡化了開發步驟。
本發明采用的技術方案如下:
一種多版本的yarn聚合日志導出方法,包括以下步驟:采用重寫loadClass方式定義類加載器CustomClassLoader;根據所述類加載器CustomClassLoader并基于SPI實現IExport實現類;基于所述IExport實現類代理ExportProxy代理類;基于所述IExport實現類將所述ExportProxy代理類緩存至ExportCache。
所述采用重寫loadClass方式定義類加載器CustomClassLoader包括以下步驟:判斷當前ClassLoader是否加載過當前Class文件;如果所述當前ClassLoader未加載過所述當前Class文件,則在當前ClassLoader resource范圍內搜索所述當前Class文件;如果在所述當前ClassLoader resource范圍內搜索到所述當前Class文件,則加載并返回Class對象;如果在當前ClassLoader resource范圍內未搜索到所述當前Class文件,則采用父類加載器進行加載,并判斷加載是否成功;如果加載成功,則返回所述Class對象;如果加載失敗,則拋出ClassNotFoundException異常。
所述根據所述類加載器CustomClassLoader并基于SPI實現IExport實現類包括以下步驟:在resource目錄下添加META-INF/services目錄;在所述META-INF/services目錄下新建與IExport接口的全限定名一致的第一文件,并在所述第一文件中寫入IExport接口的實現類的全限定名,以獲取第二文件;基于所述第二文件重寫open方法、reachedEnd方法、readNext方法和close方法。
所述基于所述IExport實現類代理ExportProxy代理類,包括以下步驟:創建所述ExportProxy代理類并實現IExport中接口;在所述ExportProxy代理類中創建入參為所述IExport實現類的構造方法;在重寫后的open方法、reachedEnd方法、readNext方法和close方法執行前將線程上下文類加載器設置為所述類加載器CustomClassLoader,并在重寫后的open方法、reachedEnd方法、readNext方法和close方法執行結束后將所述線程上下文類加載器設置為原始類加載器。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州玳數科技有限公司,未經杭州玳數科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210047840.8/2.html,轉載請聲明來源鉆瓜專利網。





