Linkis 新版本的特性介紹以及使用實踐

2022-03-08 13:00:06

近日,WeDataSphere和Apache Linkis (Incubating)社群舉辦了2022年第一場 Meetup。

本次活動邀請了Linkis PPMC 邸帥 和 Linkis Contributor 張延召,給大家帶來《Linkis 1.0.3 新版本特性介紹》和《基於Linkis的企業巨量資料平臺改造之路》的分享。

《Linkis 1.0.3 新版本特性介紹》

邸帥  Linkis PPMC / 微眾銀行巨量資料平臺負責人

1、Linkis的介紹  

  • Linkis 在上層應用程式和底層引擎之間構建了一層計算中介軟體,以標準化可重用的方式解決「計算治理」問題,提供了強大的連通、管控、編排、擴充套件和複用能力。

  • 通過使用Linkis 提供的REST/WebSocket/JDBC 等標準介面,上層應用可以方便地連線存取MySQL/Spark/Hive/Presto/Flink等底層引擎,同時實現了變數、 函數、指令碼檔案等使用者資源的跨上層應用橫向互通。

  • 通過將上層應用和底層引擎解耦,Linkis 簡化了資料平臺複雜的網狀呼叫關係,降低了整體複雜度,節約了開發和運維成本,讓資料平臺變得更加靈活柔性可控。

開源專案地址:

  • Github:https://github.com/apache/incubator-Linkis

  • Giteehttps://gitee.com/WeBank/Linkis

2、Linkis 1.0.3的新特性

Apache Linkis(incubating) 1.0.3 包含所有 Project Linkis-1.0.3。

該版本是Linkis進入Apache孵化的第一個版本。主要完成ASF基礎設施建設,包括License完善/包名修改等,增加EngineConn對Operator的支援等功能,修復社群反饋的1.0.2版本中的bug。

新增了以下主要功能:

  • http restful api風格使用springmvc替換jersey

  • 用 fastxml json 替換 codehaus json

  • 支援 EngineConn/OnceEngineConn 通用operator

  • 支援使用kerberos代理使用者

更多詳情見公眾號推文:

3、Linkis後續版本規劃

4、Linkis 生態 WeDataSphere 其他元件適配版本計劃

《基於Linkis的企業巨量資料平臺改造之路》

張延召  Linkis Contributor / 巨量資料開發工程師

1、郎數巨量資料平臺介紹

郎數巨量資料平臺,是自研的企業級巨量資料平臺產品,旨在助力企業實現開發便捷化、資料資產化。其作為上層應用,將工作流排程任務提交至DolphinScheduler,臨時任務直接提交至Linkis,也可以實現解析任務引數,將實時任務直接提交至Linkis。      

 

2、為何要引入 Linkis

隨著業務發展,系統模組越來越多,依賴繁雜,部署包龐大,導致部署耗時長。在執行資料分析時,容易出錯會干擾其它任務,造成記憶體溢位,影響到整個應用,使服務穩定性降低。並且,上層應用和底層引擎的連線中,需要維護各個元件的連線、執行、狀態管理等,程式碼日漸複雜,也不易擴充套件。經過調研, 發現 Linkis 的設計思路和核心特性是一個很好的解決方案 。

Linkis 作為上層應用和底層引擎之間的計算中介軟體,將應用層和引擎層解耦,簡化了複雜的呼叫關係,降低了整體複雜度,有效節約了整體開發和維護成本。另外,在 Linkis 的統一入口、穩定性和豐富的計算儲存引擎的加持下,能夠有效的幫助我們解決上述業務痛點。

3、DolphinScheduler On Linkis 實踐

工作流

上圖是引入 Linkis的整體思想,在上層應用、實時&臨時查詢的任務,我們會把它直接去提交到Linkis去連線底層的叢集,進行任務執行。

工作流和定時排程類的任務,通過 DolphinScheduler 來執行

在任務新增方面,為了避免在 DolphinSchedule 和Linkis兩邊同時要做支援,我們將具體去執行任務的操作都交給 Linkis 來統一完成, DolphinSchedule只進行工作流的設定排程,並把它拆分後的任務封裝成 SubmittableInteractiveJob,作為 Linkis的任務,提交到 linki 統一進行作業的執行。        

詳細解讀參見講稿和視訊回放

在安裝測試方面,在所難免的遇到了點小問題,在此分享給大家,作為借鑑。

許可權問題 :出現Error: Could not find or load main class com.webank.wedatasphere.Linkis.engineconn.launch.EngineConnServer的報錯, 排查後發現是由於無法讀取組態檔、許可權不足或無法載入主類等報錯,導致引擎無法啟動。在開啟了wds.Linkis.storage.enable.io.proxy 代理設定和引擎初始化對 ENGINECONN_ROOT_DIR 目錄遞迴授權後得到了解決。

JDBC引擎支援ClickHouse :無明顯報錯,任務一直處於執行狀態;在JDBC引擎中手動引入依賴,排除衝突的依賴,使其支援ClickHouse資料來源之後問題得到解決。

在未來我們會繼續優化Linkis在業務系統中的應用,也期待和大家交流經驗。 

參與社群貢獻的方式

(1)新手任務:認領入門任務,詳見https://github.com/apache/incubator-Linkis/issues/1161

(2)作品沉澱:釋出WeDataSphere開源組建相關內容,包括但不限於安裝部署教學、使用經驗、案例實踐等,形式不限,請投稿給小助手。如:

(3)貢獻程式碼:PR和Issue;

(4)答疑:熱心為開發者答疑,如社群群回答開發者問題、issue答疑等;

(5)其他:沙箱體驗、參與活動、成為社群志願者等;

展開閱讀全文