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

来源:https://www.cnblogs.com/DolphinScheduler/archive/2023/05/11/17391475.html
-Advertisement-
Play Games

開源之夏 2023 學生報名已經正式開啟!Apache DolphinScheduler 今年繼續參與開源之夏的活動,2023 年 4 月 29 日-6 月 3 日 15:00 UTC+8,同學們可以在開源之夏官網 https://summer-ospp.ac.cn/ 找到 Apache Dolph ...


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

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄 一、進程原理 二、進程工作過程 三、進程類型 四、管理進程 五、前後臺調度 六、定時任務 七、管理定時任務 一、進程原理 進程:指正在運行的程式稱之為進程 程式:指的是沒有運行的代碼 線程:真正的執行者,是複製了一部分進程的代碼,可以完成部分任務的,真正的執行者 二、進程工作過程 進程工作過程 ...
  • 環境: 系統版本:Windows 10 需求描述: 描述:在搜索引擎中想在結果中過濾一些指定網站,快速找到有價值的內容。 實現方法-視頻與文字教程: 視頻教程: 文字教程: 1.進入百度搜索引擎,bing搜索引擎貌似不可以。 www.baidu.com 2.搜索內容如:銳捷無線AC基礎命令 -csd ...
  • 前言 平時大家創建項目基本上都是藉助開發工具創建,比如visual studio,visual studio code,今天我們在Linux系統上,通過命令行的形式創建.NET6項目。 版本介紹 系統版本:Ubuntu22.04 SDK版本:.NET6 安裝.NET環境 # 升級系統 sudo ap ...
  • 一、安裝 Mailx Ubuntu sudo apt-get install bsd-mailx CentOS7 yum -y install mailx 二、獲取郵箱授權碼 (解決報錯問題 535 Error: authentication failed, system busy) 以騰訊企業郵箱 ...
  • 本篇記錄在macOS系統下使用VS Code配置 GCC、GDB來搭建C/C++開發環境,首先要提前安裝好gcc和gdb,見前一篇博文 macOS下安裝gcc、gdb(親測可行) 安裝好gcc、gdb之後,接下來為VS Code配置文件使其可以調用gcc、gdb,macOS下的配置過程與Linux下 ...
  • 1 索引介紹 索引是一種幫助查詢語句能夠快速定位到數據的一種技術。索引的存儲方式有行存儲索引、列存儲索引和記憶體優化三種存儲方式: 行存儲索引,使用B+樹結構,行存儲指的是數據存儲格式為堆、聚集索引和記憶體優化表的表,用於OLTP場景。行存儲索引按順序排列的值列表,每個值都有指向其所在的數據頁面的指針。 ...
  • (資料庫定時備份winserver2012篇) 1 序言 數據是無價的,所以生產環境中定時備份資料庫顯得尤為重要。備份能防止伺服器故障、天災人禍和人為誤操作帶來的數據丟失。 上一篇文章我們說了Linux環境下的數據備份。這一篇就把之前留下的坑給填上了。 這一篇我們說一說winserver2012環境 ...
  • 隨著世界經濟由工業經濟向數字經濟轉型,數據逐步成為關鍵的生產要素,企業開始將數據作為一種戰略資產進行管理。數據從業務中產生,在IT系統中承載,要對數據進行有效治理,需要業務充分參與,IT系統確保遵從,這是一個非常複雜的系統工程。 數據治理架構 實踐證明,企業只有構築一套企業級的數據治理綜合體系,明確 ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...