Apache DolphinScheduler 開源之夏學生項目申請開啓,6 大課題等你來拿萬元獎金!

file

開源之夏 2023 學生報名已經正式開啓!Apache DolphinScheduler 今年繼續參與開源之夏的活動,2023 年 4 月 29 日-6 月 3 日 15:00 UTC+8,同學們可以在開源之夏官網 https://summer-ospp.ac.cn/ 找到 Apache DolphinScheduler 下的項目,挑選自己感興趣的課題,通過項目相對應導師聯繫方式與導師溝通並準備申請資料,提交申請。

開源之夏 2023 介紹

開源之夏是由中科院軟件所“開源軟件供應鏈點亮計劃”發起並長期支持的一項暑期開源活動,旨在鼓勵在校學生積極參與開源軟件的開發維護,培養和發掘更多優秀的開發者,促進優秀開源軟件社區的蓬勃發展,助力開源軟件供應鏈建設。

開源之夏聯合國內外開源社區,針對重要開源軟件的開發與維護提供項目任務,面向全球高校學生開放報名。中選學生將在項目資深開發者(項目導師)的指導下,參與開源貢獻,完成開發工作並貢獻給開源社區。

零距離體驗頂級開源項目、跟着技術大牛提升研發能力、用成果贏取豐厚獎金和證書等,都是此次活動的亮點,非常值得一試。

獎金設置

● 進階難度:學生結項獎金稅前人民幣 12000 元。

● 基礎難度:學生結項獎金稅前人民幣 8000 元。

活動流程

file

當前,活動已經進行到學生註冊、遇到事溝通項目、提交項目申請的階段,滿足條件的學生均可報名參加。今年 11 月,活動將進入尾聲,公佈年度優秀學生名單。

可參考學生指南查看報名詳細流程:https://summer-ospp.ac.cn/help/student/

Apache DolphinScheduler社區介紹

file

Apache DolphinScheduler基於Apache開源社區理念打造,是全球知名的DataOps領域開源項目。作爲一個雲原生分佈式去中心化,易擴展的可視化DAG工作流任務調度平臺,它致力於解決數據處理流程中錯綜複雜的依賴關係,使調度系統在數據處理流程中開箱即用。獨特的架構設計和產品設計,使得其具備高可靠性、簡單易用、高擴展性、豐富的使用場景等特性。

  1. 高可靠性:去中心化的多Master和多Worker服務對等架構, 避免單Master壓力過大,並採用任務緩衝隊列來避免過載;
  2. 簡單易用:DAG監控界面讓所有流程定義可視化,通過拖拽任務完成定製DAG,通過API方式與第三方系統集成, 一鍵部署;
  3. 豐富的使用場景:支持多租戶,支持暫停恢復操作. 緊密貼合大數據生態,提供Spark, Hive, M/R, Python, Sub_process, Shell等近20種任務類型;
  4. 高擴展性:支持自定義任務類型,調度器使用分佈式調度,調度能力隨集羣線性增長,Master和Worker支持動態上下線。

截至目前,Apache DolphinScheduler社區在開源力量的推動下發展迅速,已有460+ Contributors 積極參與到社區的共建中,GitHub Star 已達10.4k,以開源社區的模式集合全球頂尖高科技公司的共同貢獻,打造全球極致簡單易用、穩定可擴展的DataOps平臺。

Apache DolphinScheduler已累計在1000多家公司生產環境中作爲企業的核心調度系統,包括IBM、騰訊、科大訊飛、美團、360、聯通、順豐等,覆蓋金融、電信、零售、雲計算、數據處理等廣泛領域。

項目官網:https://dolphinscheduler.apache.org/

GitHub:https://github.com/apache/dolphinscheduler

加入Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

DolphinScheduler項目課題介紹

本次活動,Apache DolphinScheduler 開源社區共有 6 個項目課題經過組委會評審,同學們可在鏈接頁面中挑選自己感興趣的項目:

https://summer-ospp.ac.cn/org/orgdetail/22999f09-2be2-4dd8-b10f-bc4d6610cc25?lang=zh

01 重構依賴任務模式

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/232290219?list=org&navpage=org 項目難度:進階 支持語言:中文&英文 項目社區導師:進勇 導師聯繫郵箱:[email protected] 技術領域:Java 開源協議:Apache License 2.0 項目簡述: 當前狀況:當前的依賴是依賴單個任務和All,這裏的All其實是依賴工作流,並不是依賴所有的任務。

計劃改造:

1、依賴單個任務的方式不變,All改造成依賴工作流中所有任務,新增一種類型依賴工作流。 2、前端在依賴的地方增加個單選框,選擇依賴任務或者工作流,如果選擇依賴任務,任務的選擇框顯示出來,如果現在依賴工作流,任務的選擇框隱藏 3、對於後端,All對於的任務code還是0,依賴工作流時,對應的任務code可使用-1或其他表示。

項目產出要求:

實現dependent任務既能依賴全部的任務,又能依賴工作流。

項目技術要求:

● 熟悉 java語言 ● 對任務調度系統有了解

項目成果倉庫: https://github.com/apache/dolphinscheduler

02 Dolphinscheduler master/worker

恢復容錯優化

項目鏈接: https://summer-ospp.ac.cn/org/prodetail/23b660198?list=org&navpage=org 項目難度:進階 支持語言:中文&英文 項目社區導師:向梓豪 導師聯繫郵箱:[email protected] 技術領域:Bash、Linux、Java 開源協議:Apache License 2.0 項目簡述:

當前主/工作節點掛起時。它將執行容錯操作,並在主/工作節點重新啓動後重新啓動失敗的任務。這將導致用戶在Linux進程或yarn應用程序中執行的Shell/Spark/Flink任務重複運行。

因此,我建議在主/工作程序重新啓動後,如果這些任務處於正常執行狀態,則不會重新執行。

Shell節點,因爲當前DS任務節點的進程的執行路徑是唯一的。因此,我們可以通過 ps-ef | grep XXX 查詢該進程是否存在。如果是,則不會重新啓動任務。

Yarn 相關的任務節點通過 yarn application-status application_id 檢查任務是否正在運行。如果是,則不會重新啓動任務。

項目產出要求:

在容錯恢復過程中,Shell節點能夠正常獲取其先前的運行狀態。 在容錯恢復過程中,Yarn 相關的任務能夠正常獲取其先前的運行狀態。

項目技術要求:

熟悉 Linux 進程管理 理解 Hadoop Yarn 組件並且能根據官方文檔快速學習使用相應API 熟悉 Java 語言

項目成果倉庫: https://github.com/apache/dolphinscheduler

03 pydolphinscheduler任務增加

minix機制

項目鏈接: https://summer-ospp.ac.cn/org/prodetail/232290221?list=org&navpage=org 項目難度:基礎 支持語言:中文 項目社區導師:zhongjiajie 導師聯繫郵箱:[email protected] 技術領域:Python 開源協議:Apache License 2.0 項目簡述: pydolphinscheduler 是 apache dolphinscheduler 的 python sdk,允許用戶通過 python 語法定義工作流和任務。目前,pydolphinscheduler 任務的代碼都是進行單獨定義的,如 shell 任務

class Shell(Task):
    _task_custom_attr = {
         "raw_script",
    }

    ext: set = {".sh", ".zsh"}
    ext_attr: str = "_raw_script"

 def __init__(self, name: str, command: str, *args, **kwargs):
     self._raw_script = command
     super().__init__(name, TaskType.SHELL, *args, **kwargs)

我們發現有部分任務需要有特定的屬性,如 Kubernetes 任務 https://github.com/apache/dolphinscheduler-sdk-python/issues/25 。我們希望引用 minix 類來解決這部分問題,關於minix 可以參考 https://www.pythontutorial.net/python-oop/python-mixin/

項目產出要求: 通過 minix 解決這個類似的問題 保證單元測試及覆蓋率 項目技術要求: 瞭解 python 基礎,對 OOP 有一定認識 瞭解 pytest 相關 項目成果倉庫: https://github.com/apache/dolphinscheduler

04 數據源中心擴展成源中心

項目鏈接: https://summer-ospp.ac.cn/org/prodetail/232290223?list=org&navpage=org 項目難度:進階 支持語言:中文&英文 項目社區導師:高楚楓 導師聯繫郵箱:[email protected] 技術領域:Vue.js、Spring、BootDatabase、Java 開源協議:Apache License 2.0 項目簡述: DolphinScheduler 有一個 Datasource Center 的組件,用於管理 sql 任務的外部連接,如 mysql、hive、spark 等。

但是不只是sql任務,其他一些 DolphinScheduler 任務插件也需要外部連接,比如AWS EMR任務、Zeppelin任務、K8S任務等。我們可以豐富需要 Datasource Center 來管理連接的場景,尤其是 那些具有憑據的外部系統並將其升級到連接中心。

相關問題:[Feature] Add connection center feature for DS #10283(https://github.com/apache/dolphinscheduler/issues/10283)

目標: 將 Datasource Center 的名稱更改爲 Connection Center。 重構部分AWS EMR、Zeppelin、K8S、Sagemaker任務插件,方便用戶在連接中心管理外部連接。 去掉安全中心的Cluster Management和K8S Namespace Manage,因爲管理K8S集羣不是大數據編排工具的工作。用戶可以在連接中心爲 K8S 任務插件配置 K8S 連接。

項目產出要求: 一個或多個提交到github倉庫 項目技術要求: [後端] 熟悉Java編程。 [後端] 對 Spring Boot Framework 有一定的瞭解。 [前端] 對VUE有所瞭解 項目成果倉庫: https://github.com/apache/dolphinscheduler

05 增加跨工作流的參數傳遞功能

項目鏈接: https://summer-ospp.ac.cn/org/prodetail/232290357?list=org&navpage=org 項目難度:進階 支持語言:中文 項目社區導師:鮑亮 導師聯繫郵箱:[email protected] 技術領域:Vue.js、Spring Boot、Java 開源協議:Apache License 2.0 項目簡述:

  1. 工作流可以選擇自己的輸出參數,作爲工作流的輸出參數,輸出給下游任務使用。

場景1:shellA -> subprocessB -> shellC

shellA 查出所有學生信息 (a,b,c) 並將 users 輸出給下游任務subprocessB subprocessB 是一個子工作流, 負責計算所有學生個數 userCount,並將userCount 作爲工作流的輸出傳遞給下游 shellC 負責將 userCount 輸出到控制檯 2. 依賴任務也可以選擇將被依賴任務的輸出參數繼承過來使用。增加依賴參數繼承功能 需要在依賴任務上增加一個字段:是否繼承被依賴任務的參數

場景2:

工作流A :taska1 -> taska2, taska2 輸出了參數 count=10 工作流B : taskb1 -> dependentb2 -> taskb3 dependentb2 依賴了taska2 就可以將count繼承過來作爲dependentb2的輸出參數,給taskb3使用

備註:前端知識不用太多,只是簡單的效果

項目產出要求:

實現以上兩個場景的需求,並將代碼提交到開發分支上 詳細的設計文檔以及使用文檔 詳盡的UT測試類 項目技術要求:

熟悉 Java 語言 熟悉 spring boot 可以實現簡單的前端效果 項目成果倉庫: https://github.com/apache/dolphinscheduler

06 DolphinScheduler Listener機制

項目鏈接: https://summer-ospp.ac.cn/org/prodetail/232290593?list=org&navpage=org 項目難度:進階 支持語言:中文 項目社區導師:孫朝和 導師聯繫郵箱:[email protected] 技術領域:SpringBoot、Java 開源協議:Apache License 2.0 項目簡述: 當工作流/任務執行時,第三方系統希望可以通過接收消息的方式(而非輪詢)來實時獲取工作流/任務的狀態和相關信息,可以通過添加自定義Listener的方式來實現獲取需要的信息推送到特定的目的地(消息隊列、外部系統接口等)的目標。 項目產出要求: 完成Listener機制設計和開發、並將代碼提交到開發分支上 詳細的設計文檔和使用文檔 詳盡的UT測試類 項目技術要求: 熟悉Java語言 熟悉SpringBoot 項目成果倉庫: https://github.com/apache/dolphinscheduler

歡迎同學們報名 Apache DolphinScheduler 的項目,爲社區建設添磚加瓦的同時,獲得豐富的開源經歷和豐厚的獎金回報!

爲加快項目報名申請速度,建議同學們可以主動向導師發送郵件進行溝通,附上自己的方案和簡歷,讓我們更加了解你,並認真瞭解社區項目文檔,與導師充分溝通。

我們還有專門的開源之夏活動交流羣,給大家解答關於項目和參與活動的疑惑,添加小助手 17743592110 微信,並備註“開源之夏 2023”,我們將拉您進入交流羣。

file

本文由 白鯨開源科技 提供發佈支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章