1. 程式人生 > 其它 >又是一年開源之夏,八大課題專案獎金等你來拿!

又是一年開源之夏,八大課題專案獎金等你來拿!

又是一年【開源之夏】季。今年,Apache DolphinScheduler 同樣參與到了【開源之夏】活動中來,希望有更多學生群體關注到 Apache DolphinScheduler,並踴躍參與專案共建拿獎金!

No.1 活動介紹

開源之夏是由“開源軟體供應鏈點亮計劃”發起並長期支援的一項暑期開源活動,由中國科學院軟體研究所與 openEuler 社群共同舉辦,旨在鼓勵在校學生積極參與開源軟體的開發維護,促進優秀開源軟體社群的蓬勃發展,培養和發掘更多優秀的開發者。

學生可自主選擇感興趣的專案進行申請,並在中選後獲得社群導師親自指導。根據專案的難易程度和完成情況,參與者還將獲取開源之夏活動獎金和結項證書。

開源之夏活動官網:https://summer.iscas.ac.cn/

No.2 活動日程

No.3 專案介紹

Apache DolphinScheduler 是一個雲原生易擴充套件的視覺化 DAG 工作流任務排程系統。致力於解決資料處理流程中複雜的任務依賴關係,使各種任務型別(Spark /Flink/MR/Shell/Python/SQL等)在工作流編排中開箱即用。

No.4 獎金設定

  • 進階:獎金人民幣 12000 元
  • 優化類的任務,例如提高效能,降低資源佔有
  • 基礎:獎金人民幣 8000 元
  • 功能類的任務,例如為本社群開源專案增加一個或若干個重要特性等

No.5 八大課題

本次活動,Apache DolphinScheduler 開源社群共設有 8 個專案課題具體如下,歡迎參與:

01 為 DolphinScheduler Python API 新增資原始檔

【專案編號】222290294

【專案難度】進階/Advanced

【程式語言】Python

【專案描述】目前,DolphinScheduler Python API 只能傳遞字串格式傳遞任務的引數,例如我們的 tutorial

dolphinscheduler/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/tutorial.py

我們只將一個字串傳遞給shell任務型別。但通常來說,使用者希望具體的執行程式碼儲存在其他系統中(希望更好維護和整合),例如將具體檔案儲存在本地檔案系統、GitHub、GitLab、Amazon S3、阿里雲 OSS 等。也許我們可以新增語法糖讓使用者更加簡單的操作外部檔案

任務 task_parent 將從 URL https://github.com/apache/dolphinscheduler/blob/dev/script/install.sh 載入檔案內容並將其傳遞給引數 command,它使我們的 DAG 檔案更容易和可維護

【專案產出要求】

實現 Resource 的外掛化

實現具體的外掛 Resource 包括但不限於本地檔案系統,GitHub, GitLab, Amazon S3, 阿里雲 OSS

Python API 的通過測試覆蓋率,當前閾值為 90%

文件,包括開發(如何二開實現外掛)和使用(每個 Resource 外掛使用)

【專案技術要求】

熟悉python,包括decorator、io、network、unittest、document

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】鍾嘉傑

聯絡方式:[email protected]

02 資源中心優化

【專案編號】222290456

【專案難度】進階/Advanced

【程式語言】Java、Shell

【專案描述】重構 Dolphinscheduler 資源中心的讀寫邏輯

目前資源中心讀寫 HDFS/S3/本地目錄 通過在資料庫表中 t_ds_resources 記錄檔案/資料夾目錄來實現檔案記錄,但是在使用者初始化DS或者使用者在DS的外部修改了第三方儲存的內容的時候DS無法進行實時同步,希望能夠與第三方儲存的內容保證實時同步(呼叫第三方的API對檔案增刪改查)

【專案產出要求】

DS 不儲存資源中心中檔案的路徑,對於資源中心的讀寫全都通過呼叫第三方API實現,只儲存任務例項依賴到的內容路徑於資料庫用於檔案刪除校驗。

實現現有的資源中心的所有功能,其中包括 檔案/資料夾 增刪改查,任務例項呼叫資源中心

後端API文件

【專案技術要求】

瞭解 Linux 系統,對 Linux 檔案管理有一定的熟悉

瞭解 HDFS/S3 元件,能夠較快速的根據官方文件學習API的使用

熟悉 Java 語言

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】向梓豪

聯絡方式:[email protected]

03 master/worker/api模組日誌優化

【專案編號】222290457

【專案難度】進階/Advanced

【程式語言】Java

【專案描述】由於DS日誌不方便真實定位問題,需要將列印日誌進行規範及優化

【專案產出要求】

整理出DS列印日誌規範指導文件,並提交到文件庫

將master/worker/api模組按照規範文件進行落地並提交到開發分支

【專案技術要求】

熟悉 Java 語言

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】進勇

聯絡方式:jiny.li@foxmail.com

04 自動收集、儲存作業提交的Yarn作業的application id

【專案編號】222290458

【專案難度】進階/Advanced

【程式語言】Java

【專案描述】DolphinScheduler支援各種各樣的作業,比如Python、Shell等,其中一個很基礎的功能就是收集這些作業建立的Yarn Job的application id。現在的實現方式是用一個正則表示式從作業的日誌中解析,但這並不是一個完美的實現方式,本課題的任務就是用一種新的方式去自動收集、報錯Yarn Job的application id資訊,當然了,必須對使用者透明,即對使用者建立的作業無侵入。

【專案產出要求】

自動收集、報錯Yarn Job的application id資訊

必須對使用者透明,即對使用者建立的作業無侵入

【專案技術要求】

熟悉 Java, Yarn, Hive, Spark SQL, AOP

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】gabrywu

聯絡方式:[email protected]

05 為 DolphinScheduler 新增服務初始化的工作流demo

【專案編號】222290459

【專案難度】進階/Advanced

【程式語言】Java、Shell

【專案描述】使用者在啟動DolphinScheduler服務後,可以使用demo-tool程式預置工作流demo,包括但不限於簡單的shell任務、邏輯元件任務(switch、dependent、subprocess、condition)、引數傳遞等功能, 引導使用者更方便地使用DolphinScheduler。

【專案產出要求】

預置工作流demo的tool程式

服務啟動指令碼新增 init模式

工作流demo包括但不限於shell任務、邏輯元件任務(switch、dependent、subprocess、condition)、引數傳遞等

【專案技術要求】

熟悉 Java、Shell

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】蔡順峰

聯絡方式:[email protected]

06 為 DolphinScheduler 新增 Java 任務型別

【專案編號】222290460

【專案難度】進階/Advanced

【程式語言】Java、Shell、Vue、TypeScript

【專案描述】提供Java型別的排程任務,包括Jar和自定義Java程式碼兩種方式,通過WEBUI定義Java執行時所需要的Resources、Libs資原始檔和JVM引數,覆蓋定時任務呼叫Java程式場景並提升使用者方便配置。

【專案產出要求】

可執行的Java型別任務外掛

Java型別外掛支援Jar方式,提供Resources、Libs資原始檔和JVM引數的動態引數輸入

Java型別外掛支援WebUI自定義Java程式碼方式,提供Java類即時編譯,執行

【專案技術要求】

熟悉Shell、Java、SPI、Java compiler、VUE3、TypeScript

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】Kerwin

聯絡方式:[email protected]

07 支援測試任務

【專案編號】222290461

【專案難度】進階/Advanced

【程式語言】Java、Vue

【專案描述】

目前新增/修改的工作流在上線前很難驗證工作流配置是否正確,只能通過在線上環境執行來驗證,所以有必要支援測試環境執行任務。

資料來源中心支援配置測試環境源,線上環境源可繫結一個測試環境源。任務執行及工作流執行支援“是否測試”選項,選擇測試時,Worker節點在任務執行前,自動替換線上環境源為繫結的測試環境源,再配合Worker分組實現線上、測試環境的隔離,最終達到支援測試任務的目標。

【專案產出要求】

資料來源配置頁面增加線上、測試選項,支援繫結測試源

工作流執行頁面、任務執行頁面新增線上、測試選項

Master節點、Worker節點解析執行環境標識,替換資料來源為測試資料來源

工作流例項、任務例項頁面增加執行環境標識

【專案技術要求】

熟悉Java、Spring、VUE3

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】溫合民

聯絡方式:[email protected]

08 為 DolphinScheduler 的專案和資源中心增加讀寫許可權的授權管理

【專案編號】222290462

【專案難度】基礎/Basic

【程式語言】Java、Vue、TypeScript

【專案描述】當前DolphinScheduler對於許可權的管控相對比較簡單,希望在進行專案和資源中心授權時增加操作許可權管控來進行讀寫許可權的分離。

【專案產出要求】

針對單個專案的全部內容進行讀寫許可權區分,對單個使用者針對單個專案授權只讀或者讀寫許可權

針對資源中心的全部內容進行讀寫許可權區分,基於當前資源中心的授權內容區分出只讀或者讀寫許可權

進行授權時前端頁面增加只讀和讀寫的授權操作

【專案技術要求】

熟悉Java、Spring、Vue3、TypeScript

【專案成果倉庫】

https://github.com/apache/dolphinscheduler

https://github.com/apache/dolphinscheduler-website

【專案主導師】孫朝和

聯絡方式:[email protected]

No.6 申請參與專案

01 申請資格

本活動面向年滿 18 週歲在校學生。

暑期即將畢業的學生,只要在申請時學生證處在有效期內,就可以提交申請。

海外學生可提供錄取通知書/學生卡/在讀證明證明學生身份。

02 參與流程

03 申請建議

歡迎主動向導師傳送郵件進行溝通,附上自己的方案和簡歷,更加了解你~

認真瞭解社群專案文件,與導師充分溝通。

歡迎加入交流群交流

參與貢獻

隨著國內開源的迅猛崛起,Apache DolphinScheduler 社群迎來蓬勃發展,為了做更好用、易用的排程,真誠歡迎熱愛開源的夥伴加入到開源社群中來,為中國開源崛起獻上一份自己的力量,讓本土開源走向全球。

參與 DolphinScheduler 社群有非常多的參與貢獻的方式,包括:

貢獻第一個PR(文件、程式碼) 我們也希望是簡單的,第一個PR用於熟悉提交的流程和社群協作以及感受社群的友好度。

社群彙總了以下適合新手的問題列表:https://github.com/apache/dolphinscheduler/issues/5689

非新手問題列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A"volunteer+wanted"

如何參與貢獻連結:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html

來吧,DolphinScheduler開源社群需要您的參與,為中國開源崛起添磚加瓦吧,哪怕只是小小的一塊瓦,匯聚起來的力量也是巨大的。

參與開源可以近距離與各路高手切磋,迅速提升自己的技能,如果您想參與貢獻,我們有個貢獻者種子孵化群,可以新增社群小助手微信(Leonard-ds) ,手把手教會您( 貢獻者不分水平高低,有問必答,關鍵是有一顆願意貢獻的心 )。

新增小助手微信時請說明想參與貢獻。

來吧,開源社群非常期待您的參與。

活動推薦

當資料資源成為生產發展乃至於生存過程中必不可少的要素,企業該如何通過資料整合幫助企業資料服務全生命週期落地呢?5月14日,資料整合框架 Apache SeaTunnel(Incubating)將邀請一站式資料整合平臺 Apache InLong(Incubating)的技術專家與開源貢獻者們,一同來到直播間,與大家暢談使用Apache SeaTunnel(Incubating)與Apache InLong(Incubating)後的實踐經歷與心得體會。

直播連結:https://live.bilibili.com/24523914?broadcast_type=0&is_room_feed=1&spm_id_from=333.999.0.0