点击上方蓝字关注我们

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. 手把手教你使用Git管理你的软件代码

    什么是分布式版本控制系统?Git有哪些常用命令?什么是仓库?Git的操作区域包括哪些?Git有哪些常用对象(object)?git rebase和git merge的区别是什么?git reset,g ...

  2. 基于SqlSugar的开发框架循序渐进介绍(6)-- 在基类接口中注入用户身份信息接口

    在基于SqlSugar的开发框架中,我们设计了一些系统服务层的基类,在基类中会有很多涉及到相关的数据处理操作的,如果需要跟踪具体是那个用户进行操作的,那么就需要获得当前用户的身份信息,包括在Web A ...

  3. elemetnUI表格分别给列表每一个按钮加loading

    // 获取列表数据的时候--添加按钮loading this.list = this.list.map((item) => { this.$set(item, "dataLoading ...

  4. 如何在 pyqt 中捕获并处理 Alt+F4 快捷键

    前言 如果在 Windows 系统的任意一个窗口中按下 Alt+F4,默认行为是关闭窗口(或者最小化到托盘).对于使用了亚克力效果的窗口,使用 Alt+F4 最小化到托盘,再次弹出窗口的时候可能出现亚 ...

  5. GO的日志库log竟然这么简单!

    前言 最近在尝试阅读字节开源RPC框架Kitex的源码,看到日志库klog部分,果不其然在Go原生的log库的基础上增加了自己的设计,大体包括增加了一些格式化的输出.增加一些常用的日志级别等. 一番了 ...

  6. Django-request的常见属性

    瞧一瞧,看一看,Django时,获取Request的各个属性. Request的常见属性 request.META 返回一个python字典.它包含了所有的HTTP请求信息.如下代码: 点击查看代码 ...

  7. point pair feature在2D图像匹配中的应用

    point pair feature在2D图像匹配中的应用 point pair feature(ppf) @article{BertramDrost2010ModelGM, title={Model ...

  8. 如何使用Superset可无缝对接MRS进行自助分析

    摘要:本文主要介绍如何在MRS之上使用Superset进行数据分析. 本文分享自华为云社区<使用商业智能软件Superset分析MRS数据之最佳实践>,作者: 啊喔YeYe . 1. 概要 ...

  9. 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon socket"类情况

    Docker安装命令: 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon ...

  10. Centos使用crontab自动定时备份mysql的脚本

    在我们网站上线之后免不了需要备份数据库,为什么要备份呢?我给大家列出了3个理由. 1.防止数据丢失 2.防止数据改错了,可以用来恢复 3.方便给客户数据 以 上几点告诉我们要经常备份,当然我今天给大家 ...