Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!
开源之夏 2023 学生报名已经正式开启!Apache DolphinScheduler 今年继续参与开源之夏的活动,2023 年 4 月 29 日-6 月 3 日 15:00 UTC+8,同学们可以在开源之夏官网 找到 Apache DolphinScheduler 下的项目,挑选自己感兴趣的课题,通过项目相对应导师联系方式与导师沟通并准备申请资料,提交申请。
开源之夏 2023 介绍
开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。
开源之夏联合国内外开源社区,针对重要开源软件的开发与维护提供项目任务,面向全球高校学生开放报名。中选学生将在项目资深开发者(项目导师)的指导下,参与开源贡献,完成开发工作并贡献给开源社区。
零距离体验顶级开源项目、跟着技术大牛提升研发能力、用成果赢取丰厚奖金和证书等,都是此次活动的亮点,非常值得一试。
奖金设置
● 进阶难度:学生结项奖金税前人民币 12000 元。
● 基础难度:学生结项奖金税前人民币 8000 元。
活动流程
当前,活动已经进行到学生注册、遇到事沟通项目、提交项目申请的阶段,满足条件的学生均可报名参加。今年 11 月,活动将进入尾声,公布年度优秀学生名单。
可参考学生指南查看报名详细流程:
Apache DolphinScheduler社区介绍
Apache DolphinScheduler基于Apache开源社区理念打造,是全球知名的DataOps领域开源项目。作为一个云原生分布式去中心化,易扩展的可视化DAG工作流任务调度平台,它致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。独特的架构设计和产品设计,使得其具备高可靠性、简单易用、高扩展性、丰富的使用场景等特性。
- 高可靠性:去中心化的多Master和多Worker服务对等架构, 避免单Master压力过大,并采用任务缓冲队列来避免过载;
- 简单易用:DAG监控界面让所有流程定义可视化,通过拖拽任务完成定制DAG,通过API方式与第三方系统集成, 一键部署;
- 丰富的使用场景:支持多租户,支持暂停恢复操作. 紧密贴合大数据生态,提供Spark, Hive, M/R, Python, Sub_process, Shell等近20种任务类型;
- 高扩展性:支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线。
截至目前,Apache DolphinScheduler社区在开源力量的推动下发展迅速,已有460+ Contributors 积极参与到社区的共建中,GitHub Star 已达10.4k,以开源社区的模式集合全球顶尖高科技公司的共同贡献,打造全球极致简单易用、稳定可扩展的DataOps平台。
Apache DolphinScheduler已累计在1000多家公司生产环境中作为企业的核心调度系统,包括IBM、腾讯、科大讯飞、美团、360、联通、顺丰等,覆盖金融、电信、零售、云计算、数据处理等广泛领域。
项目官网:
GitHub:
加入Slack:
DolphinScheduler项目课题介绍
本次活动,Apache DolphinScheduler 开源社区共有 6 个项目课题经过组委会评审,同学们可在链接页面中挑选自己感兴趣的项目:
01 重构依赖任务模式
项目链接:
项目难度:进阶
支持语言:中文&英文
项目社区导师:进勇
导师联系邮箱:jiny.li@foxmail.com
技术领域:Java
开源协议:Apache License 2.0
项目简述:
当前状况:当前的依赖是依赖单个任务和All,这里的All其实是依赖工作流,并不是依赖所有的任务。
计划改造:
1、依赖单个任务的方式不变,All改造成依赖工作流中所有任务,新增一种类型依赖工作流。
2、前端在依赖的地方增加个单选框,选择依赖任务或者工作流,如果选择依赖任务,任务的选择框显示出来,如果现在依赖工作流,任务的选择框隐藏
3、对于后端,All对于的任务code还是0,依赖工作流时,对应的任务code可使用-1或其他表示。
项目产出要求:
实现dependent任务既能依赖全部的任务,又能依赖工作流。
项目技术要求:
● 熟悉 java语言
● 对任务调度系统有了解
项目成果仓库:
02 Dolphinscheduler master/worker
恢复容错优化
项目链接:
项目难度:进阶
支持语言:中文&英文
项目社区导师:向梓豪
导师联系邮箱:zihaoxiang@apache.org
技术领域: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 语言
项目成果仓库:
03 pydolphinscheduler任务增加
minix机制
项目链接:
项目难度:基础
支持语言:中文
项目社区导师:zhongjiajie
导师联系邮箱:zhongjiajie955@gmail.com
技术领域: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 任务 //github.com/apache/dolphinscheduler-sdk-python/issues/25 。我们希望引用 minix 类来解决这部分问题,关于minix 可以参考 //www.pythontutorial.net/python-oop/python-mixin/
项目产出要求:
通过 minix 解决这个类似的问题
保证单元测试及覆盖率
项目技术要求:
了解 python 基础,对 OOP 有一定认识
了解 pytest 相关
项目成果仓库:
//github.com/apache/dolphinscheduler
## 04 数据源中心扩展成源中心
项目链接:
//summer-ospp.ac.cn/org/prodetail/232290223?list=org&navpage=org
项目难度:进阶
支持语言:中文&英文
项目社区导师:高楚枫
导师联系邮箱:chufenggao@gmail.com
技术领域: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(//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有所了解
项目成果仓库:
//github.com/apache/dolphinscheduler
## 05 增加跨工作流的参数传递功能
项目链接:
//summer-ospp.ac.cn/org/prodetail/232290357?list=org&navpage=org
项目难度:进阶
支持语言:中文
项目社区导师:鲍亮
导师联系邮箱:baoliang.leon@gmail.com
技术领域: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
可以实现简单的前端效果
项目成果仓库:
//github.com/apache/dolphinscheduler
## 06 DolphinScheduler Listener机制
项目链接:
//summer-ospp.ac.cn/org/prodetail/232290593?list=org&navpage=org
项目难度:进阶
支持语言:中文
项目社区导师:孙朝和
导师联系邮箱:sunzhaohe0825@gmail.com
技术领域:SpringBoot、Java
开源协议:Apache License 2.0
项目简述:
当工作流/任务执行时,第三方系统希望可以通过接收消息的方式(而非轮询)来实时获取工作流/任务的状态和相关信息,可以通过添加自定义Listener的方式来实现获取需要的信息推送到特定的目的地(消息队列、外部系统接口等)的目标。
项目产出要求:
完成Listener机制设计和开发、并将代码提交到开发分支上
详细的设计文档和使用文档
详尽的UT测试类
项目技术要求:
熟悉Java语言
熟悉SpringBoot
项目成果仓库:
//github.com/apache/dolphinscheduler
欢迎同学们报名 Apache DolphinScheduler 的项目,为社区建设添砖加瓦的同时,获得丰富的开源经历和丰厚的奖金回报!
为加快项目报名申请速度,建议同学们可以主动向导师发送邮件进行沟通,附上自己的方案和简历,让我们更加了解你,并认真了解社区项目文档,与导师充分沟通。
我们还有专门的开源之夏活动交流群,给大家解答关于项目和参与活动的疑惑,添加小助手 17743592110 微信,并备注“开源之夏 2023”,我们将拉您进入交流群。

> 本文由 [白鲸开源](//www.whaleops.com/index.html) 提供发布支持!
Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!的更多相关文章
- 数据平台调度升级改造 | 从Azkaban 平滑过度到 Apache DolphinScheduler 的操作实践
Fordeal的数据平台调度系统之前是基于Azkaban进行二次开发的,但是在用户层面.技术层面都存在一些痛点问题难以被解决.比如在用户层面缺少任务可视化编辑界面.补数等必要功能,导致用户上手难体验差 ...
- 金融任务实例实时、离线跑批Apache DolphinScheduler在新网银行的三大场景与五大优化
在新网银行,每天都有大量的任务实例产生,其中实时任务占据多数.为了更好地处理任务实例,新网银行在综合考虑之后,选择使用 Apache DolphinScheduler 来完成这项挑战.如今,新网银行多 ...
- 议题征集令 | Apache DolphinScheduler Meetup 2021 来啦,议题征集正式开启!
点击上方 蓝字关注我们 社区的小伙伴们,经过精心筹备,我们很高兴地宣布,Apache DolphinScheduler Meetup 2021 将于 2021 年 11 月 27 日到来! 在 Mee ...
- Apache DolphinScheduler 1.3.6 功能发布说明
参与人员 @chengshiwen.@hailin0.@wanghong1314.@ruanwenjun.@xxjingcd.@zhangguohao.@zhuangchong.@syb8535531 ...
- 我和Apache DolphinScheduler的缘分
关于 DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache 孵化器,社区发 ...
- 我与Apache DolphinScheduler的成长之路
关于 Apache DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache ...
- 挑战海量数据:基于Apache DolphinScheduler对千亿级数据应用实践
点亮 ️ Star · 照亮开源之路 GitHub://github.com/apache/dolphinscheduler 精彩回顾 近期,初灵科技的大数据开发工程师钟霈合在社区活动的线 ...
- 新一代大数据任务调度 - Apache DolphinScheduler喜提十大开源新锐项目 & 最具人气项目
经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...
- 【喜讯】Apache DolphinScheduler 荣获 “2020 年度十大开源新锐项目”
经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...
- 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k
本周伊始,Apache DolphinScheduler 项目在 GitHub 上的 Github Star 总数首次突破 8K.目前,Apache DolphinScheduler 社区已经拥有 C ...
随机推荐
- 115、商城业务---分布式事务---使用Springboot提供的Seata解决分布式事务
//seata.io/zh-cn/ seata使用Seata AT模式控制分布式事务的步骤: 1.每一个想控制分布式事务的服务对应的数据库都需要创建一个UNDO_LOG 表 CREATE ...
- 微信小程序-实现微信登录
业务流程: 1:首先需要一个按钮触发事件 2:调用微信小程序的登录接口wx.login,拿到code 3:调用微信小程序的获取用户信息的接口wx.getUserProfile,拿到用户的个人信息 4: ...
- vue几种插槽的使用方法
参考文档://blog.csdn.net/weixin_49217200/article/details/118496525 参考文档://blog.csdn.net/ct52 ...
- go 发布
rm test-serv.bingo build -o test-serv.bin main.go
- python 中倒是什么事可哈希的意思那?
可哈希对象 python中的hashable(可哈希的)是什么意思 2018年12月29日 23:29:36 shangyj17 阅读数:511 不严谨但易懂的解释: 一个对象在其生命周期内,如果 ...
- Javaweb实践复习--MyBatis
增删改查操作 查询 查询所有数据 1.编写接口方法:Mapper接口------参数:无------结果:List 2.编写sql语句:SQL映射文件 一般情况下,若是用户实体类里面的变量名称与数据库 ...
- C++类的构造函数、析构函数、拷贝构造函数、赋值函数和移动构造函数详细总结
目录 1. 五种函数介绍 2. 左值&右值怎么区分?怎么看? 3. 匿名对象的3种使用情况 4. 代码详细验证每个函数调用情况 4.1 测试 f_1 函数(函数形参测试 -- 值传递) 4.2 ...
- PyQt5学习 (1)--对象的基本操作、QObject
参考视频:[Python-GUI编程-PyQt5 (少)] //www.bilibili.com/video/BV17J41177ro/?share_source=copy_web& ...
- 有关idea的使用部分
出现相关异常,提示类似粗在idea找不到相关的包加载失败. 执行mvn命令 mvn -U idea:idea 含义更新重新加载idea工程的相关jar
- flask配置config详解
flask系列讲座与2017年12月6日开始,每周一篇.第三篇其中讲述flask的配置方法.使用app.config.from_object()方法,似乎很神奇.如果明白背后逻辑,实际上很自然.涉及代 ...