又是一年季。今年,ApacheDolphinScheduler同样参与到了活动中来,希望有更多学生群体关注到ApacheDolphinScheduler,并踊跃参与项目共建拿奖金!
No.1活动介绍
开源之夏是由“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,由中国科学院软件研究所与openEuler社区共同举办,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展,培养和发掘更多优秀的开发者。
学生可自主选择感兴趣的项目进行申请,并在中选后获得社区导师亲自指导。根据项目的难易程度和完成情况,参与者还将获取开源之夏活动奖金和结项证书。
开源之夏活动官网:https://summer.iscas.ac.cn/
No.2活动日程
No.3项目介绍
ApacheDolphinScheduler是一个云原生易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中复杂的任务依赖关系,使各种任务类型(Spark/Flink/MR/Shell/Python/SQL等)在工作流编排中开箱即用。
No.4奖金设置
进阶:奖金人民币12000元
优化类的任务,例如提高性能,降低资源占有
基础:奖金人民币8000元
功能类的任务,例如为本社区开源项目增加一个或若干个重要特性等
No.5八大课题
本次活动,ApacheDolphinScheduler开源社区共设有8个项目课题具体如下,欢迎参与:
01为DolphinSchedulerPythonAPI添加资源文件
222290294
进阶/Advanced
Python
目前,DolphinSchedulerPythonAPI只能传递字符串格式传递任务的参数,例如我们的tutorial
dolphinscheduler/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/tutorial.py
我们只将一个字符串传递给shell任务类型。但通常来说,用户希望具体的执行代码储存在其他系统中,例如将具体文件存储在本地文件系统、GitHub、GitLab、AmazonS3、阿里云OSS等。也许我们可以添加语法糖让用户更加简单的操作外部文件
任务task_parent将从URLhttps://github.com/apache/dolphinscheduler/blob/dev/script/install.sh加载文件内容并将其传递给参数command,它使我们的DAG文件更容易和可维护
实现Resource的插件化
实现具体的插件Resource包括但不限于本地文件系统,GitHub,GitLab,AmazonS3,阿里云OSS
PythonAPI的通过测试覆盖率,当前阈值为90%
文档,包括开发和使用
熟悉python,包括decorator、io、network、unittest、document
https://github.com/apache/dolphinscheduler
https://github.com/apache/dolphinscheduler-website
钟嘉杰
联系方式:zhongjiajie955@gmail.com
02资源中心优化
222290456
进阶/Advanced
Java、Shell
重构Dolphinscheduler资源中心的读写逻辑
目前资源中心读写HDFS/S3/本地目录通过在数据库表中t_ds_resources记录文件/文件夹目录来实现文件记录,但是在用户初始化DS或者用户在DS的外部修改了第三方存储的内容的时候DS无法进行实时同步,希望能够与第三方存储的内容保证实时同步
DS不存储资源中心中文件的路径,对于资源中心的读写全都通过调用第三方API实现,只保存任务实例依赖到的内容路径于数据库用于文件删除校验。
实现现有的资源中心的所有功能,其中包括文件/文件夹增删改查,任务实例调用资源中心
后端API文档
了解Linux系统,对Linux文件管理有一定的熟悉
了解HDFS/S3组件,能够较快速的根据官方文档学习API的使用
熟悉Java语言
https://github.com/apache/dolphinscheduler
https://github.com/apache/dolphinscheduler-website
向梓豪
联系方式:zihaoxiang@apache.org
03master/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作业的applicationid
222290458
进阶/Advanced
Java
DolphinScheduler支持各种各样的作业,比如Python、Shell等,其中一个很基础的功能就是收集这些作业创建的YarnJob的applicationid。现在的实现方式是用一个正则表达式从作业的日志中解析,但这并不是一个完美的实现方式,本课题的任务就是用一种新的方式去自动收集、报错YarnJob的applicationid信息,当然了,必须对用户透明,即对用户创建的作业无侵入。
自动收集、报错YarnJob的applicationid信息
必须对用户透明,即对用户创建的作业无侵入
熟悉Java,Yarn,Hive,SparkSQL,AOP
https://github.com/apache/dolphinscheduler
https://github.com/apache/dolphinscheduler-website
gabrywu
联系方式:gabrywu@apache.org
05为DolphinScheduler添加服务初始化的工作流demo
222290459
进阶/Advanced
Java、Shell
用户在启动DolphinScheduler服务后,可以使用demo-tool程序预置工作流demo,包括但不限于简单的shell任务、逻辑组件任务、参数传递等功能,引导用户更方便地使用DolphinScheduler。
预置工作流demo的tool程序
服务启动脚本添加init模式
工作流demo包括但不限于shell任务、逻辑组件任务、参数传递等
熟悉Java、Shell
https://github.com/apache/dolphinscheduler
https://github.com/apache/dolphinscheduler-website
蔡顺峰
联系方式:caishunfeng2021@gmail.com
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、Javacompiler、VUE3、TypeScript
https://github.com/apache/dolphinscheduler
https://github.com/apache/dolphinscheduler-website
Kerwin
联系方式:zhuangchong6@163.com
07支持测试任务
222290461
进阶/Advanced
Java、Vue
目前新增/修改的工作流在上线前很难验证工作流配置是否正确,只能通过在线上环境执行来验证,所以有必要支持测试环境执行任务。
数据源中心支持配置测试环境源,线上环境源可绑定一个测试环境源。任务执行及工作流执行支持“是否测试”选项,选择测试时,Worker节点在任务执行前,自动替换线上环境源为绑定的测试环境源,再配合Worker分组实现线上、测试环境的隔离,最终达到支持测试任务的目标。
数据源配置页面增加线上、测试选项,支持绑定测试源
工作流执行页面、任务执行页面新增线上、测试选项
Master节点、Worker节点解析执行环境标识,替换数据源为测试数据源
工作流实例、任务实例页面增加执行环境标识
熟悉Java、Spring、VUE3
https://github.com/apache/dolphinscheduler
https://github.com/apache/dolphinscheduler-website
温合民
联系方式:whm_777@163.com
08为DolphinScheduler的项目和资源中心增加读写权限的授权管理
222290462
基础/Basic
Java、Vue、TypeScript
当前DolphinScheduler对于权限的管控相对比较简单,希望在进行项目和资源中心授权时增加操作权限管控来进行读写权限的分离。
针对单个项目的全部内容进行读写权限区分,对单个用户针对单个项目授权只读或者读写权限
针对资源中心的全部内容进行读写权限区分,基于当前资源中心的授权内容区分出只读或者读写权限
进行授权时前端页面增加只读和读写的授权操作
熟悉Java、Spring、Vue3、TypeScript
https://github.com/apache/dolphinscheduler
https://github.com/apache/dolphinscheduler-website
孙朝和
联系方式:sunzhaohe0825@gmail.com
No.6申请参与项目
01申请资格
本活动面向年满18周岁在校学生。
暑期即将毕业的学生,只要在申请时学生证处在有效期内,就可以提交申请。
海外学生可提供录取通知书/学生卡/在读证明证明学生身份。
02参与流程
03申请建议
欢迎主动向导师发送邮件进行沟通,附上自己的方案和简历,更加了解你~
认真了解社区项目文档,与导师充分沟通。
欢迎加入交流群交流
参与贡献
随着国内开源的迅猛崛起,ApacheDolphinScheduler社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。
参与DolphinScheduler社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码)我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds),手把手教会您(贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心)。
添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
活动推荐
当数据资源成为生产发展乃至于生存过程中必不可少的要素,企业该如何通过数据集成帮助企业数据服务全生命周期落地呢?5月14日,数据集成框架ApacheSeaTunnel(Incubating)将邀请一站式数据集成平台ApacheInLong(Incubating)的技术专家与开源贡献者们,一同来到直播间,与大家畅谈使用ApacheSeaTunnel(Incubating)与ApacheInLong(Incubating)后的实践经历与心得体会。
直播链接:https://www.slidestalk.com/m/777
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。