点击上方蓝字关注我们

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. JavaSE_多线程入门 线程安全 死锁 状态 通讯 线程池

    1 多线程入门 1.1 多线程相关的概念 并发与并行 并行:在同一时刻,有多个任务在多个CPU上同时执行. 并发:在同一时刻,有多个任务在单个CPU上交替执行. 进程与线程 进程:就是操作系统中正在运 ...

  2. Python 多道技术以及进程、线程和协程

    多道技术 并发:看起来像同时运行 并行:真正意义上的同时运行,并行肯定是并发 空间的复用与时间复用 空间复用 多个程序用一套计算机硬件 时间复用 程序切换节省时间 ''' 切换(cup)分为两种情况 ...

  3. Vue出现Component template should ...

    当运行vue出现错误Component template should contain exactly one root element. If you ...的时候,我们只需要将<templa ...

  4. Java_选择结构

    if单选择结构 if(布拉尔表达式){ //如果布拉尔表达式为true将执行的语句 } if双选择结构 if(布拉尔表达式){ //如果布拉尔表达式的值为true }else{ //如果布拉尔表达式的 ...

  5. Docker运行资源控制

    概述 ​ 一个 docker host 上会运行若干容器,每个容器都需要 CPU.内存和 IO 资源.对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU.内存资源给每个虚拟机.对于 ...

  6. 如何写一个全局的 Notice 组件?

    下面将会实现这样的效果: 组件动态创建脚本: NotificationBanner.js import Vue from "vue"; import Notice from &qu ...

  7. 蓝牙、WiFi、ZigBee三大无线通信技术协议模块哪一个是最好的?

    曾经,在2015年极客公园创新大会上,小米首次在非官方平台发布了新款产品小米智能家庭套装.自此,Zigbee便常出现在大众视野中. 如今,小米在IoT物联网应用开发者平台上明确说明,不再推广Zigbe ...

  8. camunda如何调用HTTP REST(Service Task)服务节点

    ​ Camunda中的Service Task(服务任务)用于调用服务.在Camunda中,可以通过调用本地Java代码.外部工作项.web服务形式实现的逻辑来完成的. 本文重点描述如何使用web服务 ...

  9. ExtJS 布局-Fit布局(Fit Layout)

    更新记录: 2022年5月31日 第一稿. 1.说明 Fit布局只会显示一个子组件,子项组件的尺寸会拉伸到容器的尺寸.当容器进行调整大小(resized),子组件会自动调整去拉伸到付容器的大小. 注意 ...

  10. 高通sensor理解

    .1.高通为什么引入adsp? 2.adsp sensor 是如何工作起来的? 3.adsp 和ap 是如何通信的? 4.adsp 架构组成 解答: 1.高通在msm8960之前sensor 是挂在p ...