背景

本文的主人翁是 2 次飞机参会现场交流,四天研究就把 DolphinScheduler 用上生产的来自车联网行业的大数据 boy - 黄立同学。怎么样,听起来是不是有点 crazy?下面就来看看黄同学艺高人胆大的开源故事。

主人翁:黄立,长安汽车 - 云平台开发部 - 大数据工程师,负责车联网数据基础平台建设工作,DolphinScheduler Committer。目前专注于物联网数据存储和计算领域。

我参与到 DS 社区应该刚好一年,是非常典型的从开源用户到了解社区最后参与社区的路线。

01

四天上生产

初识EasyScheduler(DolphinScheduler的前身):四天上生产

时间回退到 2019 年 8 月,公司成为了 Cloudera 的客户,准备基于 EDH 构建车联网数据平台。
在大数据任务调度系统选型的时候,初步定了3个组件:Zeus,Azkaban,Airflow。从系统是否开源,二开难度和易用性上最终选型了 Azkaban。接下来就是开始对 Azkaban 测试,Azkaban 使用 command 的方式来描述任务关系,描述方式比较麻烦,不够直观。于是我开始继续寻找大数据批处理调度系统,发现了这个新闻:

分布式工作流任务调度系统Easy Scheduler正式开源

https://blog.csdn.net/odailidong/article/details/88904364

嗯?可视化拖拉拽?支持shell?HA?易观投产两年?java 系?

我:琦鹏( EDH 实施的小哥),要不咱们整下这个 easyscheduler?
琦鹏:哥, 咱这个还有一周就要上线啊,你现在测?
我:我看网上写得挺不错的,搞搞看?部署应该不复杂的,不行还有 Azkaban 嘛
琦鹏:。。。。。。。。。
于是我花了 4 天的时间将 easyscheduler 从测试环境部署到预生产的 POC 全部做完,向领导汇报后,得到的反馈是,可以投产。现在,5 个节点的 ds 系统承接了车联网数据平台的所有批处理任务,已经稳定运行了一年四个月。

02

接触社区

参加社区 2019 年 12 月 8 日第一次 Meetup

2019 年 9 月 17 日,ds 进入 apache 孵化器,开始了第一个 apache 版本的发版工作。我也开始了这个分支的升级测试工作,因为当时 1.2.0 支持了一个非常重要的功能:跨项目依赖。由于对 ds 的了解程度不高,开发环境升级之后,之前做好的定时的任务一直无法调起来,我决定在 12 月 8 日到北京去参加 Apache DolphinScheduler & ShardingSphere 的联合 Meetup,目的是找到 ds 的开发者帮我解决系统升级的问题。这里要感谢一下我的领导,支持我到北京出差参加社区活动。这是当时 Meetup 的照片,也是我第一次参加线下的 Meetup,有一种程序员开大会的感觉。最后一个 topic,各位大佬进行了如何加入 Apache 社区并成为Committer 的圆桌讨论。我了解到了 Apache 项目的运作方式,有哪些角色,参与到开源项目中的方式。

重点是,会后我拿出电脑让 ds 的开发者李岗帮我查组件升级的问题,最后发现是包名的升级兼容性问题,现在想起来都觉得很神奇,从重庆到北京,就处理了一个ds 的升级问题。

回到重庆之后,我决定开始参与到 ds 社区中。于是整理对 ds 的改造点,提了第一个 pr,是关于 Spark 组件支持多版本的功能。PR 的日期是 2019 年 12月 17日。参加 12 月 8 日 Meetup 的决定,让我真正开始动起手来,参与开源。划重点:参加 Meetup!!!

03

参与社区

从细节做起,不光是代码

参与开源项目,贡献社区不单是只有提交代码这一种方式。任何形式参与社区:贡献文档,提交翻译,参与讨论,在邮件列表或 issue 中回答社区用户的提问,都会被社区记录和认可。期间我发现有部分用户,在参与开源项目的时候,喜欢一来就整个 “大 Feature” 。关于一个 Feature,其设计和实现并未经过社区讨论,一个 pr就更改了 100 多个文件,提交上万行代码,这样的 pr 其 review 压力巨大,很难得到社区认可。
在开源贡献的层面来说,所做的工作给社区带来微小而美好的改变就是值得的。个人而言,我参与社区的方式比较综合:

  • 贡献代码

在 issue 列表中,寻找自己感兴趣的 issue,做力所能及的 bug fix 和实现 feature。

  • 报告 bug,参与讨论

  • 贡献文档

提到文档贡献就非常有意思了,在 2020 年初的时候,DolphinScheduler 社区建立了海豚调度的公众号,我贡献给社区的第一篇文档是

Eights,公众号:海豚调度如何在 CDH5.16.2 中部署 Apache Dolphin Scheduler 1.2.0

后续得到的反馈是有不少用户根据这篇文档,成功部署 DS,开始成为小海豚的用户,我感到非常非常高兴。“ 所以,参与社区,真的不一定需要写代码。” 之后,我又陆续向社区贡献文档,涉及版本升级指南,部署参数分析和故障处理。

04

社区收获

参与社区是要花费一定的休息时间和精力的,在参与社区这件事上,付出和收获一定是成正比的。

4.1 引入重要的 Bug Fix

最最最重要的是,通过社区用户的实践,我们可以提前发现一些重要的 bug,比如在 1.3.4 中修复的任务卡死(https://www.oschina.net/news/125150/apache-dolphinscheduler-1-3-4-released)问题,如果对社区熟悉就可以在内部的代码中 cherry-pick 对应的 pr,不用等到社区发版,保证生产系统的稳定性。

4.2 内部开发保持与社区一致

引用HBase社区张铎老师的 PPT,参与开源,将内部的 feature 回馈给社区,参与社区开发,可以保证自研代码和社区代码的步调一致,享受到社区最新的功能

05

写在最后

我一直觉得,做任何事情,学习任何一项技能,都要经历一个:不会到会,会到会用,用到用好,用好到用成自己的,四个阶段。目前,我们正处于将 ds 用好的一个阶段。个人也会继续参与到开源中,在社区中贡献,收获。

笃情开源:我和 Apache DolphinScheduler 社区的故事相关推荐

  1. 我与Apache DolphinScheduler社区的故事

    我与DolphinScheduler社区的故事 Apache DolphinScheduler 是一个开源的分布式去中心化.易扩展的可视化DAG大数据调度系统. 于2017年在易观数科立项,2019年 ...

  2. 恭喜!Apache DolphinScheduler社区再添9枚“新鲜”Committer

    火热的夏天悄然来临,正如开源世界的热情一样骤然升温! 最近,Apache DolphinScheduler 社区又迎来 9 位新晋Committer.个性十足的他们青春张扬,凭着对开源的一腔热忱,获得 ...

  3. Apache DolphinScheduler 社区呼唤志愿者

    DolphinScheduler是什么? Apache DolphinScheduler 是一个分布式.易扩展并带有强大的可视化界面的大数据工作流调度系统. 2021 年 03 月 18 日正式成为 ...

  4. Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!

    开源之夏 2023 学生报名已经正式开启!Apache DolphinScheduler 今年继续参与开源之夏的活动,2023 年 4 月 29 日-6 月 3 日 15:00 UTC+8,同学们可以 ...

  5. AI Multiple 力荐2022年十大开源工作流调度和 WLA工具,Apache DolphinScheduler 在列!...

    作者 | Alamira Jouman Hajjar 2021 年的一项调查显示,企业内部使用开源工具的首要目的,是想要实现 IT 基础设施的现代化和数字化转型.反之,作为 IT 部门数字化转型的推动 ...

  6. 专访|带着问题去学习,Apache DolphinScheduler 王福政

    | 转载自:开源之夏 | 责编:沈于蓝 | 编辑:胡欣元 | 设计:王福政 本期专访来自 Apache DolphinScheduler Contributor 王福政. 01 自我介绍 我与开源 深 ...

  7. Apache DolphinScheduler v2.0.1 Master 和 Worker 执行流程分析系列(三)

    点亮 ⭐️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 这是一系列关于 DolphinScheduler v2.0.1的源码分析文 ...

  8. 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k

    本周伊始,Apache DolphinScheduler 项目在 GitHub 上的 Github Star 总数首次突破 8K.目前,Apache DolphinScheduler 社区已经拥有 C ...

  9. 讲师征集令 | Apache DolphinScheduler Meetup分享嘉宾,期待你的议题和声音!

    Apache DolphinScheduler 社区线上 Meetup 讲师&议题正式对外征集啦!在全球疫情的笼罩下,我们的线上技术沙龙活动一直在紧锣密鼓的筹备举办,在此我们诚心向社区广大用户 ...

  10. 名额已排到10月 | Apache DolphinScheduler Meetup分享嘉宾继续火热招募中~

    自从Apache DolphinScheduler 社区线上 Meetup 讲师&议题正式对外公开征集以来!后台有很多用户踊跃报名,目前已经排到了10月份,为了更好匹配每场Meetup的主题, ...

最新文章

  1. 26.使用ajaxSetup()方法设置全局Ajax默认选项
  2. Vivado不同版本打开IP核锁定的解决办法
  3. 谷歌浏览器安装POSTMAN
  4. Linux Kernel系列一:开篇和Kernel启动概要
  5. 【译】 Diving Into The Ethereum VM Part 6 - How Solidity Events Are Implemented
  6. Vue源码解析之AST语法树(三)
  7. 无法从“cstring”转换为“lpcstr”_U盘重装系统后,无法使用?
  8. android camera 动画,Android 使用Camera创建3D动画
  9. pillow支持python 2和python 3_python3读取图像并可视化的方法(PIL/Pillow、opencv/cv2)...
  10. 云桌面三大谎言之GPU虚拟化
  11. 经典测试用例--水杯测试
  12. HTML中构建自动伸缩的表格Table
  13. python编程一球从100米_Python求解一个球从100米高度自由落下的问题
  14. LeetCode刷题日记:LCP 03.机器人大冒险
  15. 可爱精灵宝贝 DP/爆搜
  16. 如何将录音m4a转换为mp3格式?
  17. 阴阳师魂十挂机实现(后台句柄截屏+鼠标点击)
  18. 域格4G模块TTS语音使用方法
  19. mounted钩子函数_vue中created钩子函数与mounted钩子函数的使用区别
  20. Win7电脑不能录音怎么办?Win7电脑无法录音的解决方法

热门文章

  1. Frontend Framework
  2. Python 操作pdf文件-加密与解密 (二)
  3. 外星人笔记本没有修复计算机,外星人笔记本的使用小技巧
  4. 程序员加薪升职之全路径解析
  5. 积化和差 和差化积公式
  6. 前端3D立体魔方小游戏
  7. Katalon Recorder安装及使用
  8. 关于【野火】OV7725例程移植【OV7670】总结
  9. 1548 A Simple Problem with Integers
  10. java bouncycastle生成数字证书工具类