从贡献第一个 pr 开始,我的开源之路正式开启
点击上方蓝字关注我们
1
我是一名开源爱好者

我是李进勇,Github Id:JinyLeeChina,目前就职于政采云,专注于大数据平台及数仓领域,是开源项目爱好者。
2
我与小海豚的不解之缘
记得是在 2019 年的下半年,当时公司在做技术转型,由传统数仓转到大数据数仓。在选用调度系统时,我对比了 Azkaban、Airflow 和 DolphinScheduler(当时还叫 EasyScheduler)这三个大数据调度系统,对比哪个操作更便捷、部署更方便。由于当初只是小团队,技术积累有限,为了能更快地配合公司技术转型,我们就选用了 DolphinScheduler,主要原因是 DolphinScheduler 配置一个任务只需拖一个节点到 dag 上,配置依赖也只是拉一条线,不像 Airflow,配置一个 dag,还得写 Python 代码,实现成本比较大。最后从易用性的角度出发,我们选用了 DolphinScheduler,从此开启了我和 DolphinScheduler 的不解之缘。
当初使用 DolphinScheduler 的第一个版本是 EasyScheduler 的 1.0.4。在使用过程中我遇到一些问题,比如不小心配置了默认时间的调度(当初默认秒级启动),一下子就导致了整个调度系统的崩溃,当时我对 DolphinScheduler 还不是很了解,真的是束手无策,在用户群里求助后,David 很快就给出了一个简单的解决方案,第一步任务下线,第二步清空 command 表,第三步删除zk中任务队列,第四步重启调度,问题一下子得到解决,在这里对他表示感谢~
之后,在空闲时我就开始研究 DolphinScheduler 的源码,在看源码的过程中,发现了有部分不友好的地方,比如单词拼写错误、告警的显示问题、异常处理问题,之后就提交了第一个pr优化告警显示,虽然提交的过程中也遇到一些问题,但在 lenboo 的指导下问题都迎刃而解。从此,我的贡献之路正式开启。也感谢我当时的领导,他非常鼓励参与开源,贡献代码。
2020 年上半年,我偶然看到社区关于 dag json 重构的计划,并在之后参与了每次讨论会议。之后我担当起这个 feature 项目经理的角色,也参与了代码的编写,比如前期表结构定义、json 转换、部分 api 接口修改,并在今年 4 月份完成 json 拆分一期,8 月份完成 json 拆分二期。这里要感谢 simon824、lenboo、wen-hemin、Wangyizhi1 等参与的贡献。
参与这个项目给我留下了很多深刻的记忆,我遇到问题积极向社区反馈时,社区里的其他同学也都会发表自己的看法,问题在讨论中就得到了解决方案,比如关于雪花算法获取 code、工作流及任务版本定义,等等。
3
调度系统的关键
我认为,调度系统最关键的需求,其实也就是调度系统的本质,即满足用户使用其进行做调度。但是用户为什么要选择 DolphinScheduler 呢,我觉得还是方便、简易、美观,这也是 DolphinScheduler 的优点,它可以让不懂代码的人也能使用调度。
4
写在最后
开源只有参与进去,才能体会到其中的乐趣。我在 DolphinScheduler 社区的最大收获,首先是个人能力的提升,比如技术视野开阔了许多,其次是认识了很多厉害的人。
社区的氛围非常 open,在这里能够获得作为技术人的最真诚最纯粹的交流,也能认识很多技术牛人。我见证了 DolphinScheduler 的成长,与社区大神们交流,也让我的技术得到飞跃式的成长。从社区会议中各路大神的思想碰撞中,我们能学到很多东西,建议大家积极参与。
我之前曾参与过 DolphinScheduler 的线上 MeetUp,抱着学习的态度希望在这里看一看别人是怎么做的,是否有适合我们的场景。在参与的过程中通过与其他人做交流,不仅能开阔我的技术视野,也能为当前公司某些场景找到解决方案,希望以后有更多这样的机会。
对于我来说,成为 DolphinScheduler 社区 committer 是个全新的起点,我将持续参与社区,希望与更多开源爱好者一起把小海豚建设得更好!
5
一起开源,一起造!
国内开源的热情越发高涨,参与贡献过开源项目已成为众多公司招聘的加分和优先项,参与开源的过程不但能使自己的各方面能力得到快速成长,还可与各路高手近距离交流。
DolphinScheduler 社区蓬勃发展的路上,为了做更好用、易用的智能调度,我们真诚欢迎更多小伙伴参与贡献。
参与 DolphinScheduler 社区有非常多的参与贡献的方式,无论是简单的翻译、答疑,还是测试、贡献文档和代码,发布实践文章、原理文章,以及会议分享等。
如何贡献代码、文档,领取issue和提交 Pull Request?
如何通过邮件、Twitter、Stack Overflow 和 Slack 和社区“对上暗号”?
本链接都有详细解释:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html
为中国开源添砖加瓦,还缺一个你!DolphinScheduler 开源社区期待你的加入!
PS:还可以添加社区小助手微信(Leonard@Dolphin), 手把手教你参与开源。请说明想参与贡献,随后会邀请你加入贡献者种子孵化群!



☞美女亲自带你快速上手 DolphinScheduler
☞Apache DolphinScheduler 1.3.8 发布
☞Apache DolphinScheduler使用规范与使用技巧分享
点个在看你最好看
从贡献第一个 pr 开始,我的开源之路正式开启的更多相关文章
- Rendertron:谷歌 Chrome 新的 headless 模式又贡献了一个新的技巧
摘自:https://zhuanlan.zhihu.com/p/31670033 Rendertron:JavaScript Web 富应用的一个老问题是如何使这些页面的动态渲染部分可供搜索引擎检索. ...
- [转]Infobright是一个与MySQL集成的开源数据仓库
[文章作者:张宴 本文版本:v1.1 最后修改:2010.05.18 转载请注明原文链接:http://blog.zyan.cc/infobright/] Infobright是一个与MySQL集成的 ...
- 打造一个高逼格的android开源项目——小白全攻略 (转)
转自:打造一个高逼格的android开源项目 小引子 在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目.通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看 ...
- NET Core写了一个轻量级的Interception框架[开源]
NET Core写了一个轻量级的Interception框架[开源] ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只 ...
- CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用
CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用. 项目地址 https://github.com/Gaoyongxian666/CountBoard 基本功能 置顶功能 ...
- 分享一个基于 netty 的 java 开源项目
1.简介 中微子代理(neutrino-proxy)是一个基于 netty 的.开源的 java 内网穿透项目.遵循 MIT 许可,因此您可以对它进行复制.修改.传播并用于任何个人或商业行为. 2.项 ...
- 我的第一个 60 k+ Star Java开源项目
JavaGuide([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识):https://github.com/Snailclimb/JavaGuide. 人生总有各种各样的 ...
- 关于分布式事务的一个误解:使用了TransactionScope就一定会开启分布式事务吗?
背景: 事务是数据库管理系统的一个基本概念,事务具有四个基本特点,即ACID:原子性(Atomicity).一致性(Consistency).隔离性(Isolation)和持久性(Durability ...
- 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]
ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...
随机推荐
- shellcode编写
shellcode编写 shellcode是一段用于利用软件漏洞而执行的代码,通常使用机器语言编写,其目的往往是让攻击者获得目标机器的命令行shell而得名,其他有类似功能的代码也可以称为shellc ...
- 一些实验中用过的python函数/方法(持续更新)
衡量运行时间 很多时候你需要计算某段代码执行所需的时间,可以使用 time 模块来实现这个功能. import time startTime = time.time() # write your co ...
- git实战-多分支开发-2022新项目
现在开发中大多数公司中都在使用Git这个代码版本管理工具,几乎可以说是已经成为标配,刚入职不久的这家新公司也不例外. 去公司没多久,开始搭建项目,然后创建开发分支,有多少个后端人员就创建多少个开发分支 ...
- 关于mybatis的应用
导入依赖 <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifact ...
- Java随谈(六)## 我们真的理解 Java 里的整型吗?
我们真的理解 Java 里的整型吗 整型是我们日常生活中最常用到的基础数据类型,看这篇文章之前,我想问: 我们真的像自己认为的那么理解 Java 内的整型吗? 也许看完本篇文章你就有自己的答案. C ...
- Java实现http大文件流读取并批量插入数据库
1.概述 请求远程大文本,使用流的方式进行返回.需要设置http链接的超时时间 循环插入到List中,使用mybatis-plus批量插入到mysql中 2.需求 两台服务器 大文件放到其中一台服务器 ...
- c++ 超长整数加法 高精度加法
c++ 超长整数加法 高精度加法 实现思路 不能直接使用加法,因为int和long long都已超出最大数据表示范围 数据读入采用string类型,读入后将数据的每一位存储到vector中 vecto ...
- 【小程序自动化Minium】一、框架介绍和环境搭建
微信小程序自动化测试系列分享 一.Minium 简介 minium 是微信团队为小程序专门开发的自动化框架,我们可以用它来做小程序的UI自动化测试,但是它的能力却不仅仅在于UI自动化. 正是得益于官方 ...
- 南京大学 静态软件分析(static program analyzes)-- introduction 学习笔记
一.Programming Languages体系 静态程序分析是编程语言中应用层面下的一个细分领域,它是一个非常重要的核心内容. 在理论部分,考虑的是如何设计一个语言的语法和语义,如何设计语言的类型 ...
- DirectX11 With Windows SDK--06 使用ImGui
前言 Dear ImGui是一个开源GUI框架.除了UI部分外,本身还支持简单的键鼠交互.目前项目内置的是V1.87版本,大概半年时间会更新一次版本,并且对源码有小幅度调整. 注意:直接下载源码使用会 ...