黄色网站入口国产美女,精品国产欧美另类一区,国产一区二区美女自慰,日日摸夜夜添无码国产

選擇你喜歡的標(biāo)簽
我們會為你匹配適合你的網(wǎng)址導(dǎo)航

    確認(rèn) 跳過

    跳過將刪除所有初始化信息

    您的位置:0XUCN > 資訊 > 技術(shù)
    新聞分類

    DolphinScheduler 2.0.1 實(shí)現(xiàn)一鍵升級、插件化等功能

    技術(shù) PRO 稿源:DolphinScheduler 2023-06-28 15:50

    2.0.1 版本通過優(yōu)化內(nèi)核增強(qiáng)了系統(tǒng)處理能力,從而在性能上得到較大提升,全新的 UI 界面也極大地提升了用戶體驗(yàn)。更重要的是,2.0.1 版本還有兩個重大變化:插件化和重構(gòu)。

    1 插件化

    此前,有不少用戶反饋希望 Apache DolphinScheduler 可以優(yōu)化插件化,為響應(yīng)用戶需求,Apache DolphinScheduler 2.0.1 在插件化上更進(jìn)了一步,新增了告警插件、注冊中心插件和任務(wù)插件管理功能。利用插件化,用戶可以更加靈活地實(shí)現(xiàn)自己的功能需求,更加簡單地根據(jù)接口自定義開發(fā)任務(wù)組件,也可以無縫遷移用戶的任務(wù)組件至 DolphinScheduler 更高版本中。

    DolphinScheduler 正在處于微內(nèi)核 + 插件化的架構(gòu)改進(jìn)之中,所有核心能力如任務(wù)、告警組件、數(shù)據(jù)源、資源存儲、注冊中心等都將被設(shè)計為擴(kuò)展點(diǎn),我們希望通過 SPI 來提高 Apache DolphinScheduler 本身的靈活性和友好性。

    相關(guān)代碼可以參考 dolphinscheduler-spi 模塊,相關(guān)插件的擴(kuò)展接口也皆在該模塊下。用戶需要實(shí)現(xiàn)相關(guān)功能插件化時,建議先閱讀此模塊代碼。當(dāng)然,也建議大家閱讀文檔以節(jié)省時間。

    我們采用了一款優(yōu)秀的前端組件 form-create,它支持基于 json 生成前端 UI 組件,如果插件開發(fā)涉及到前端,我們會通過 json 來生成相關(guān)前端 UI 組件。

    org.apache.dolphinscheduler.spi.params 里對插件的參數(shù)做了封裝,它會將相關(guān)參數(shù)全部轉(zhuǎn)化為對應(yīng)的 json。這意味著,你完全可以通過 Java 代碼的方式完成前端組件的繪制(這里主要是表單)。1

    告警插件

    以告警插件為例,我們實(shí)現(xiàn)了在 alert-server 啟動時加載相關(guān)插件。alert 提供了多種插件配置方法,目前已經(jīng)內(nèi)置了 Email、DingTalk、EnterpriseWeChat、Script 等告警插件。當(dāng)插件模塊開發(fā)工作完成后,通過簡單的配置即可啟用。2

    多注冊中心組件

    在 Apache DolphinScheduler 1.X 中,Zookeeper 組件有著非常重要的意義,包括 master/worker 服務(wù)的監(jiān)控發(fā)現(xiàn)、失聯(lián)告警、通知容錯等功能。在 2.0.1 版本中,我們在注冊中心逐漸“去 ZK 化”,弱化了 Zookeeper 的作用,新增了插件管理功能。

    在插件管理中,用戶可以增加 ETCD 等注冊中心的支持,使得 Apache Dolphinscheduler 的靈活性更高,能適應(yīng)更復(fù)雜的用戶需求。

    3

    任務(wù)組件插件

    新版本還新增了任務(wù)插件功能,增強(qiáng)了不同的任務(wù)組件的隔離功能。用戶開發(fā)自定義插件時,只需要實(shí)現(xiàn)插件的接口即可。主要包含創(chuàng)建任務(wù)(任務(wù)初始化、任務(wù)運(yùn)行等方法)和任務(wù)取消。

    如果是 Yarn 任務(wù),則需要實(shí)現(xiàn) AbstractYarnTask。目前,任務(wù)插件的前端需要開發(fā)者自己使用 Vue 開發(fā)部署,在后續(xù)版本中,我們將實(shí)現(xiàn)由 Java 代碼的方式完成前端組件的自動繪制。

    2 重構(gòu)

    迄今為止,Apache DolphinScheduler 已經(jīng)重構(gòu)了約 70% 的代碼,實(shí)現(xiàn)了全面的升級。

    Master 內(nèi)核優(yōu)化

    2.0.1 版本升級包括重構(gòu)了 Master 的執(zhí)行流程,將之前狀態(tài)輪詢監(jiān)控改為事件通知機(jī)制,大幅減輕了數(shù)據(jù)庫的輪詢壓力;去掉全局鎖,增加了 Master 的分片處理機(jī)制,將順序讀寫命令改為并行處理,增強(qiáng)了 Master 橫向擴(kuò)展能力;優(yōu)化工作流處理流程,減少了線程池的使用,大幅提升單個 Master 處理的工作流數(shù)量;增加緩存機(jī)制,優(yōu)化數(shù)據(jù)庫連接方式,以及簡化處理流程,減少處理過程中不必要的耗時操作等。

    工作流和任務(wù)解耦

    在 Apache DolphinScheduler 1.x 版本中,任務(wù)及任務(wù)關(guān)系保存是以大 json 的方式保存到工作流定義表中的,如果某個工作流很大,比如達(dá)到 100 至 1000 個任務(wù)規(guī)模,這個 json 字段會非常大,在使用時需要解析 json。這個過程比較耗費(fèi)性能,且任務(wù)無法重用;另一方面,基于大 json,在工作流版本及任務(wù)版本上也沒有很好的實(shí)現(xiàn)方案。

    因此,在新版本中,我們針對工作流和任務(wù)做了解耦,新增了任務(wù)和工作流的關(guān)系表,并新增了日志表,用來保存工作流定義和任務(wù)定義的歷史版本,大幅提高工作流運(yùn)行的效率。

    下圖為 API 模塊下工作流和任務(wù)的操作流程圖:

    3 版本自動升級功能

    2.0.1 增加了版本自動升級功能,用戶可以從 1.x 版本自動升級到 2.0.1 版本。只需要運(yùn)行一個使用腳本,即可無感知地使用新版本運(yùn)行以前的工作流:

    sh ./script/create-dolphinscheduler.sh

    具體升級文檔請參考:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/upgrade.html

    另外,Apache DolphinScheduler 將來的版本均可實(shí)現(xiàn)自動升級,省去手動升級的麻煩。04

    4 新功能列表

    Apache DolphinScheduler 2.0.1 新增功能詳情如下:

    新增 Standalone 服務(wù)

    StandAloneServer 是為了讓用戶快速體驗(yàn)產(chǎn)品而創(chuàng)建的服務(wù),其中內(nèi)置了注冊中心和數(shù)據(jù)庫 H2-DataBase、Zk-TestServer,在修改后一鍵啟動 StandAloneServer 即可進(jìn)行調(diào)試。
    如果想快速體驗(yàn),在解壓安裝包后,用戶只需要配置 jdk 環(huán)境等即可一鍵啟動 Apache DolphinScheduler 系統(tǒng),從而減少配置成本,提高研發(fā)效率。
    詳細(xì)的使用文檔請參考:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/installation/standalone.html

    或者使用 Docker 一鍵部署所有的服務(wù):https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/installation/docker.html

    任務(wù)參數(shù)傳遞功能

    目前支持 shell 任務(wù)和 sql 任務(wù)之間的傳遞。

    shell 任務(wù)之間的傳參:
    在前一個"create_parameter"任務(wù)中設(shè)置一個out的變量”trans“: echo '${setValue(trans=hello trans)}'
    當(dāng)前置任務(wù)中的任務(wù)日志中檢測到關(guān)鍵字:”${setValue(key=value)}“, 系統(tǒng)會自動解析變量傳遞值,在后置任務(wù)中,可以直接使用”trans“變量:

    SQL 任務(wù)的參數(shù)傳遞:

    SQL 任務(wù)的自定義變量 prop 的名字需要和字段名稱一致,變量會選擇 SQL 查詢結(jié)果中的列名中與該變量名稱相同的列對應(yīng)的值。輸出用戶數(shù)量:
    在下游任務(wù)中使用變量”cnt“:

    新增 switch 任務(wù)和 pigeon 任務(wù)組件:

    switch 任務(wù)

    在 switch 任務(wù)中設(shè)置判斷條件,可以實(shí)現(xiàn)根據(jù)不同的條件判斷結(jié)果運(yùn)行不同的條件分支的效果。例如:有三個任務(wù),其依賴關(guān)系是 A -> B -> [C, D] ,其中 task_a是 shell 任務(wù),task_b 是 switch 任務(wù)。

    任務(wù) A 中通過全局變量定義了名為 id 的全局變量,聲明方式為`echo '${setValue(id=1)}' `。
    任務(wù) B 增加條件,使用上游聲明的全局變量實(shí)現(xiàn)條件判斷(注意 Switch 運(yùn)行時存在的全局變量就行,意味著可以是非直接上游產(chǎn)生的全局變量)。下面我們想要實(shí)現(xiàn)當(dāng) id 為 1 時,運(yùn)行任務(wù) C,其他運(yùn)行任務(wù) D。
    配置當(dāng)全局變量 id=1 時,運(yùn)行任務(wù) C。則在任務(wù) B 的條件中編輯 ${id} == 1,分支流轉(zhuǎn)選擇 C。對于其他任務(wù),在分支流轉(zhuǎn)中選擇 D。
    pigeon 任務(wù)

    pigeon 任務(wù),是一個可以和第三方系統(tǒng)對接的一種任務(wù)組件,可以實(shí)現(xiàn)觸發(fā)任務(wù)執(zhí)行、取消任務(wù)執(zhí)行、獲取任務(wù)狀態(tài),以及獲取任務(wù)日志等功能。pigeon 任務(wù)需要在配置文件中配置上述任務(wù)操作的 API 地址,以及對應(yīng)的接口參數(shù)。在任務(wù)組件里輸入一個目標(biāo)任務(wù)名稱,即可對接第三方系統(tǒng),實(shí)現(xiàn)在 Apache DolphinScheduler 中操作第三方系統(tǒng)的任務(wù)。

    新增環(huán)境管理功能

    默認(rèn)環(huán)境配置為 dolphinscheduler_env.sh。
    在線配置 Worker 運(yùn)行環(huán)境,一個 Worker 可以指定多個環(huán)境,每個環(huán)境等價于 dolphinscheduler_env.sh 文件。
    在創(chuàng)建任務(wù)的時候,選擇 worker 分組和對應(yīng)的環(huán)境變量,任務(wù)在執(zhí)行時,worker 會在對應(yīng)的執(zhí)行環(huán)境中執(zhí)行任務(wù)。

    5 優(yōu)化項(xiàng)

    優(yōu)化 RestApi

    我們更新了新的 RestApi 規(guī)范,并且按照規(guī)范,重新優(yōu)化了 API 部分,使得用戶在使用 API 時更加簡單。

    優(yōu)化工作流版本管理

    優(yōu)化了工作流版本管理功能,增加了工作流和任務(wù)的歷史版本。

    優(yōu)化 worker 分組管理功能

    在 2.0 版本中,我們新增了 worker 分組管理功能,用戶可以通過頁面配置來修改 worker 所屬的分組信息,無需到服務(wù)器上修改配置文件并重啟 worker,使用更加便捷。

    優(yōu)化 worker 分組管理功能后,每個 worker 節(jié)點(diǎn)都會歸屬于自己的 Worker 分組,默認(rèn)分組為 default。在任務(wù)執(zhí)行時,可以將任務(wù)分配給指定 worker 分組,最終由該組中的 worker 節(jié)點(diǎn)執(zhí)行該任務(wù)。
    修改 worker 分組有兩種方法:

    打開要設(shè)置分組的 worker 節(jié)點(diǎn)上的"conf/worker.properties"配置文件,修改 worker.groups 參數(shù)。

    可以在運(yùn)行中修改 worker 所屬的 worker 分組,如果修改成功,worker 就會使用這個新建的分組,忽略 worker.properties 中的配置。修改步驟為"安全中心 -> worker 分組管理 -> 點(diǎn)擊 '新建 worker 分組' -> 輸入'組名稱' -> 選擇已有 worker -> 點(diǎn)擊'提交'"

    其他優(yōu)化事項(xiàng):

    增加了啟動工作流的時候,可以修改啟動參數(shù);

    新增了保存工作流時,自動上線工作流狀態(tài);

    優(yōu)化了 API 返回結(jié)果,加快了創(chuàng)建工作流時頁面的加載速度;

    加快工作流實(shí)例頁面的加載速度;

    優(yōu)化工作流關(guān)系頁面的顯示信息;

    優(yōu)化了導(dǎo)入導(dǎo)出功能,支持跨系統(tǒng)導(dǎo)入導(dǎo)出工作流;

    優(yōu)化了一些 API 的操作,如增加了若干接口方法,增加任務(wù)刪除檢查等。cvdc 0

    6 變更日志

    另外Apache DolphinScheduler 2.0.1 也修復(fù)了一些 bug,主要包括:

    修復(fù)了 netty 客戶端會創(chuàng)建多個管道的問題;

    修復(fù)了導(dǎo)入工作流定義錯誤的問題;

    修復(fù)了任務(wù)編碼會重復(fù)獲取的問題;

    修復(fù)使用?Kerberos?時,Hive 數(shù)據(jù)源連接失敗的問題;

    修復(fù) Standalone 服務(wù)啟動失敗問題;

    修復(fù)告警組顯示故障的問題;

    修復(fù)文件上傳異常的問題;

    修復(fù) Switch 任務(wù)運(yùn)行失敗的問題;

    修復(fù)工作流超時策略失效的問題;

    修復(fù) sql 任務(wù)不能發(fā)送郵件的問題。

    7 致謝

    感謝 289 位參與 2.0.1 版本優(yōu)化和改進(jìn)的社區(qū)貢獻(xiàn)者(排名不分先后)!


    Apache DolphinScheduler 2.0.1?

    下載地址:https://dolphinscheduler.apache.org/zh-cn/download/download.html

    0XU.CN

    [超站]友情鏈接:

    四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
    關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/

    圖庫
    公眾號 關(guān)注網(wǎng)絡(luò)尖刀微信公眾號
    隨時掌握互聯(lián)網(wǎng)精彩
    贊助鏈接