点击上方蓝字关注我们

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 开始,我的开源之路正式开启的更多相关文章

  1. Rendertron:谷歌 Chrome 新的 headless 模式又贡献了一个新的技巧

    摘自:https://zhuanlan.zhihu.com/p/31670033 Rendertron:JavaScript Web 富应用的一个老问题是如何使这些页面的动态渲染部分可供搜索引擎检索. ...

  2. [转]Infobright是一个与MySQL集成的开源数据仓库

    [文章作者:张宴 本文版本:v1.1 最后修改:2010.05.18 转载请注明原文链接:http://blog.zyan.cc/infobright/] Infobright是一个与MySQL集成的 ...

  3. 打造一个高逼格的android开源项目——小白全攻略 (转)

    转自:打造一个高逼格的android开源项目 小引子 在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目.通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看 ...

  4. NET Core写了一个轻量级的Interception框架[开源]

    NET Core写了一个轻量级的Interception框架[开源] ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只 ...

  5. CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用

    CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用. 项目地址 https://github.com/Gaoyongxian666/CountBoard 基本功能 置顶功能 ...

  6. 分享一个基于 netty 的 java 开源项目

    1.简介 中微子代理(neutrino-proxy)是一个基于 netty 的.开源的 java 内网穿透项目.遵循 MIT 许可,因此您可以对它进行复制.修改.传播并用于任何个人或商业行为. 2.项 ...

  7. 我的第一个 60 k+ Star Java开源项目

    JavaGuide([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识):https://github.com/Snailclimb/JavaGuide. 人生总有各种各样的 ...

  8. 关于分布式事务的一个误解:使用了TransactionScope就一定会开启分布式事务吗?

    背景: 事务是数据库管理系统的一个基本概念,事务具有四个基本特点,即ACID:原子性(Atomicity).一致性(Consistency).隔离性(Isolation)和持久性(Durability ...

  9. 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]

    ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...

随机推荐

  1. 个人冲刺(五)——体温上报app(二阶段)

    冲刺任务:完成用户登录和随机验证码功能 loginActivity.java package com.example.helloworld; /** * 纯粹实现登录注册功能,其它功能都被注释掉了 * ...

  2. ASP.NET MVC 处理管线模型

    MVC管道整体处理模型 1.在ASP.NET MVC处理管线中的第一站就是路由模块.当请求到达路由模块后,MVC框架就会根据Route Table中配置的路由模板来匹配当前请求以获得对应的contro ...

  3. Border性质习题与证明

    KMP 第一次接触 \(border\) 都是先从 KMP 开始的吧. 思想在于先对于一个串自匹配以求出 fail 指针(也就是 border) 然后就可以在匹配其他串的时候非常自然的失配转移.在此顺 ...

  4. ACW:831. KMP字符串

    感觉这道题非常有意思,学的过程中觉得及难,学完之后觉得及简单,看y总的视频没有看懂...,因此自己找了一篇博文理解并完成题目. import java.io.*; /** * @author admi ...

  5. Linux文本查看工具

    文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...

  6. 用Python爬取文章,并转PDF格式电子书

    wkhtmltopdf [软件],这个是必学准备好的,不然这个案例是实现不出来的 获取文章内容代码 (https://jq.qq.com/?_wv=1027&k=QgGWqAVF) 发送请求, ...

  7. SQL优化常用的几种方法

    为什么要对SQL优化: 1.执行性能低 2.等待时间过长 3.SQL写的太差 4.索引失效 ·····等等 SQL优化的一些方法: 1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看S ...

  8. Codeforces Round #779 (Div. 2)

    A 题目连接 题目大意 给一个01串,其中每一个长度大于等于2的子区间中0的数量不大于1的数量,最少插入多少1 思路 寻找 00 和 010 00 -->0110     加2 010 --&g ...

  9. P6622 信号传递 做题感想

    题目链接 前言 在这里分享两种的做法. 一种是我第一直觉的 模拟退火.(也就是骗分) 还有一种是看题解才搞懂的神仙折半搜索加上 dp . 模拟退火 众所周知,模拟退火 是我这种没脑子选手用来骗分的好算 ...

  10. C语言-数据结构-结构体

    一.结构体的定义 数组(Array)是一组具有相同类型的数据的集合.但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组 ...