从贡献第一个 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为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...
随机推荐
- iOS全埋点解决方案-数据存储
前言 SDK 需要把事件数据缓冲到本地,待符合一定策略再去同步数据. 一.数据存储策略 在 iOS 应用程序中,从 "数据缓冲在哪里" 这个纬度看,缓冲一般分两种类型. 内 ...
- 20212115朱时鸿 《python程序设计》实验四报告
课程:<Python程序设计>班级: 2121姓名: 朱时鸿学号:20212115实验教师:王志强实验日期:2022年5月28日必修/选修: 公选课 1.实验内容 Python综合应用:爬 ...
- 【leetcode 206】 反转链表(简单)
链表 概念: 区别于数组,链表中的元素不是存储在内存中连续的一片区域,链表中的数据存储在每一个称之为「结点」复合区域里,在每一个结点除了存储数据以外,还保存了到下一个结点的指针(Pointer). 由 ...
- quasar + uni-app混合打包APP
写几个关键点,作为备忘录. 和所有框架一样,现在本地run build quasar的cli是 quasar build 然后记住打包好以后的静态文件 目录 uni-app新建一个5+App的默认模板 ...
- React简单教程-5-使用mock
前言 一个前后端分离的项目,前端人员需要对接后端的接口.如果在后端的接口没有开发好,或者没有测试版可以对接的情况下,前端人员也不能坐等后端接口写好后再开始开发. 一个项目的,理想情况下接口的规范应该是 ...
- 内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境(mobaxterm、tigervnc、nfs、node)
内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境 背景 内网开发机是 win7,只能安装 node 14 以下,而 spug 的文档项目采用的是 Facebook ...
- JS:比较运算符
比较运算符有如下: 1.== 等于: 值相等 var a = "0"; var b = 1; var c = 0; console.log(a==0); //true consol ...
- Vue回炉重造之搭建考试答卷系统
本篇章主要讲述系统搭建逻辑,有疑问的可以加微信联系我.考试系统 资源 Vue.js Element UI 第三方数据接口 业务 答题过程中,防止用户中途退出或者其他不可抗力因素阻碍答题,在每次选择都要 ...
- python基础知识-day9(库学习)
1.os学习 1 print(os.name) #获取操作系统 2 print(os.path.exists("D:\soft\python")) #判断路径是否存在 3 prin ...
- zabbix通过invoke调用监控服务可用性
1. 通过脚本判断线上服务是否可用 telnet 127.0.0.1 端口 #线上调用的是使用的dubbo端口 通过invoke 抓取返回的code值,脚本如下 #返回code:0则视为正常,返回其他 ...