点亮 ⭐️ Star · 照亮开源之路

https://github.com/apache/dolphinscheduler

35b6ab792cd3d3963ee88c764009806d.jpeg

GSoc 2022

在 Google Summer of Code 2022(GSoc),Apache DolphinScheduler 设立的多个项目得到学生们的积极参与。其中,就读于 中国地质大学(武汉)软件工程专业的 王纪锋 同学因在「注册中心支持 etcd」项目中的出色表现,获得 GSoC 组委会发放的 3600 美元奖励!

他在研究生期间接受实验室 ETL 项目时了解到

DolphinScheduler 能够解决数据研发 ETL 依赖错综复杂,无法监控任务健康状态的问题。怀着通过研究 DolphinScheduler 改善实验室项目代码的目标,王纪锋偶然间参与到了 GSoc 活动中关于 DolphinScheduler 的项目。

990bfa63fe4578d4519196fa04735e0e.png

1

自我介绍

我是王纪锋,现就读于中国地质大学(武汉)软件工程专业。 

Github: wjf222

语言:Java,Golang

项目: Support etcd as registry

2

参与经历

在本科期间,我一直把Github作为一个单纯的代码存储工具。直到我开始读研后,在我的一位热衷于开源的学长的带领下,我开始通过Github去了解开源,尝试阅读一些有趣项目的源码,自然而然地我开始希望能够参与一些开源项目,解决一些简单的Issue,在我看来让自己的代码被更多的人使用是一件令人骄傲的事。

研究生期间,我接手了实验室的ETL项目,在搜索相关ETL项目时,我了解到DolphinScheduler能够解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。我希望通过研究DolphinScheduler,改善实验室项目的代码。于是我开始尝试使用DolphinScheduler,并阅读了官网中的一些PPT,梳理DolphinScheduler的代码。

参加GSoC是一件很巧合的事情,是因为我的同学想参加GSoC,我就想,如果有DolphinScheduler的项目,我就尝试参加一下。恰好我看到了DolphinScheduler的Supporter etcd as registry项目(https://issues.apache.org/jira/browse/COMDEV-459) ,它的技术需求和我的需求比较类似,因此我选择了它作为我的申请项目。

于是,我参考项目中已有的Zokeeper注册中心,梳理注册中心需要完成的任务,开始了解Etcd相关的接口,并将注册中心功能与Etcd接口进行关联。完成了我的第一版Proposal后,我开始通过邮箱与阮文俊老师(Github: ruanwenjun)进行交流,并咨询了Proposal相关的一些事宜。

在项目开发过程初期,文俊老师每周都会跟我聊一下我的进度,同时感谢caishunfeng、kezhenxu94 老师在代码合入过程中对我耐心的教导,初次参与开源,出现了很多不规范的代码以及一些很简单的错误,但是老师们都非常耐心的给我指出问题,并做出解答,让我的项目逐步完善,最终在九月份项目成功结题,并获得了3600美金奖金,这个项目也成为了我在大型开源项目中贡献的第一个Feature。

3754096041c4cc430e81d362f3b87390.png

3

贡献和成果

DolphinScheduler 的注册中心主要用于存储Master和Worker节点的元数据信息。DolphinScheduler已经实现了Zookeeper作为注册中心,本项目需要支持Etcd作为新的注册中心,这样可以帮助只了解Etcd的用于使用Dolphinscheduler。

注册中心功能大致可以使用以下的思维导图展示:

4df1a3257b6c93fdf16bae8035658067.png

我将功能大致划分为以上六个部分,并逐一进行实现,然后我添加了对于Etcd注册中心的单测。由于注册中心相关的代码缺少注释。最后我对所有注册中心以及相关接口添加了必要的注释以及README。

4

与社区的故事

DolphinScheduler是我第一个参与开源的项目,希望未来能够跟社区一起成长,共享自己的一份力量。个人感觉参与开源,最重要的是积极主动地去和社区沟通,这也是我最大的一个收获。

DolphinScheduler在#5689(https://github.com/apache/dolphinscheduler/issues/5689)中提供了一个good first issue 列表,我挑选了一个简单的日志问题并尝试解决了。第一次的成功PR让我对参与项目有了更多的兴趣。同时,随着项目开发的不断深入,我对于注册中心的了解不断深入,发现在现有的代码中,并没有使用注册中心接口中的getSessionTimeout函数,在跟文俊老师商量之后,单独提出了一个issue#10626(https://github.com/apache/dolphinscheduler/issues/10626) 提议删除该海曙,并通过PR#10633(https://github.com/apache/dolphinscheduler/pull/10633) 合入。

虽然这些都是一些简单的问题,但我相信有一天我也能够独立承接一些较大的Issue。

我也想为那些希望参与开源的同学分享一下我参与GSoC的一些心理和想法。当我了解到GSoC项目的时候,项目申请已经进行了一段时间,在Slack中,也看到了其他的同学对这个项目感兴趣,还有同学来自于CMU。因此在申请之前,我是比较害怕的,因为我了解项目比较晚,竞争的同学也来自名校,英文邮件交流对我来说也是第一次,担心自己水平不够,英文不好,问的问题很傻等情况。

直到4月14日,此时离截至时间不足一周,我才开始第一次用邮件跟文俊老师联系,说来惭愧,英文都是用谷歌翻译机翻的,并快速敲定了第一版的Proposal,并很快地迭代了最终版本。虽然我是一个初次参与开源的菜鸟,但是文俊老师在这期间也给了我耐心的回复。

我希望我的经历能让有一些想参与开源,但是跟我有一样的担心的同学,勇敢的踏出第一步,开源并没有那么难。因为社区的大佬们都是很友善的,只要积极的去参与和沟通,大家都愿意伸出援手。对于第一次参与开源贡献的同学,我相信DolphinScheduler是一个很好的选择,社区的大佬们都很友善,你可以尝试在#5689寻找一个简单的Issue,同时在官方公众号(海豚调度)上有许多的源码分析教程以及应用案例,也推荐大家阅读。

最后,感谢社区的各位大佬让我有了一次完美的开源初体验,以后也将持续继续参与社区的开源。

参与贡献

随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。

5b40a7c3bdd44ecc69fd4baa56059a2a.png

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:

470bcc093c79cc6bda93c557cdd38405.png

贡献第一个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/community/development/contribute.html

来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。

参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。

添加小助手微信时请说明想参与贡献。

来吧,开源社区非常期待您的参与。

< 🐬🐬 >

活动推荐

6d0c95992b43827db21971116f19e3ea.png

海豚调度&Linkis强强结合,探索计算治理难题的终极密码

2022 年 12 月 1 晚 20:00-21:30,Apache DolphinScheduler&Apache Linkis(Incubating) 线上Meetup活动即将来袭!来自DolphinScheduler和Linkis社区的核心贡献者将带来两个项目整合的技术分享,聚焦解决计算治理难题的方法,干货满满,欢迎报名参加!

4302b93287814c6533538aefd4e0fab8.png扫码报名

98b4062590b2a1b4e01f54a5b9855c05.jpeg

添加小助手入交流群

点击阅读原文报名!

我知道你在看155ed77dae594455e1ee439109d9c657.png

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐