Kylin Committer|左手代码,右手家庭的劳模青年
共 3269字,需浏览 7分钟
·
2021-05-02 05:41
国
际
劳
动
节
值此五一劳动佳节之际,为了致敬所有劳动者,Apache Kylin 社区特别邀请到一位能者多 “劳” 的社区贡献者作为代表,来分享他“左手敲代码,右手带俩娃”的 Kylin Committer 之旅~
在鼓励开源的公司工作是一种什么样的体验?
看到自己参与开发的项目被多个大厂肯定是一种什么样的心情?
远程办公到底需要多强大的自控力?
Q
请简单介绍一下自己
我叫张智超,是在 2020 年 4 月加入 Kyligence,任职大数据高级架构师,目前主要工作是 Kylin 4.0 的开发、维护与推广。在这之前,我也有多年的开源项目参与经验,活跃在 CarbonData, Spark 等社区。
Q
您是如何成为 Kylin committer 的?
关于这个问题,我个人觉得,只要能坚持贡献社区,包括但不限于贡献 Pull Requests、写文档、发文章、回复 Mailing List 上的问题、积极参加各种社区活动,以及作为讲师推广 Kylin 社区等,那么你所做的贡献就能得到社区的认可,自然而然能成为 Committer,关键就在于持之以恒吧。
想知道如何成为一名 Kylin Committer 吗?👇
Q
加入 Kylin 社区以来,您最有成就感的事情是什么?
Kylin 4.0 GA 版本即将在今年发布,相对于 Kylin 3 来说,不管从架构方面,还是从运维调优方面,都发生了重大的改变。对于一部分 Kylin 用户来讲,他们会比较困惑:为什么要做这么大的架构升级;升级后构建性能和查询性能和 Kylin 3 比是否有差距等等。因此,很多用户都处于一个观望 Kylin 4.0 的阶段。
幸运的是,Kylin 社区有小米、有赞等这样的前期“吃螃蟹”的 Kylin 4.0 用户。作为开发者而言,我在支持他们测试 Kylin 4.0 的过程中,帮助和配合他们一步步把 Kylin 4.0 调优到了一个可以用于生产环境的状态,这对很多在观望的用户来说,无疑是打了一剂强心针,增加了他们使用 Kylin 4.0 的信心。这里也要感谢下小米以及有赞的同学们,测试的同时也回馈了很多功能及调优经验到社区。
Q
您在向 Kylin 贡献的过程中遇到最困难的地方是什么?
遇到最大的困难应该是各种环境兼容问题吧,因为用户运行的环境是比较复杂的,从 Hadoop 2 和 3,Hive 1 到 3,可以说是各种组合都有,而且目前 Kylin 4.0 beta 版本只支持 Spark 2.4,而 Spark 2.4 只支持低于 2.3.3 的 Hive 版本,每当有用户遇到各种 ClassNotFoundException 或各种接口不兼容问题时,我常常是爱莫能助,毕竟无法模拟各种组合的环境来帮助解决问题,只能靠用户自行 Debug。
Kylin 4.0 即将支持 Spark 3.1.1,对使用 Hive 2 和 3 的同学是福音,大家敬请期待哦~
Q
加入开源社区以来,您最大的收获是哪些?
Community Over Code,参与开源社区可以认识到很多不同领域的技术大咖,在与他们接触交流的过程中,不仅仅是对自身技术上的提升,更多的则是感受到他们对技术的追求与坚持,还有严谨的态度等。
Q
请问您持续贡献的动力是什么?您下一步的贡献计划有哪些?
就如上面所说的,参与开源社区的收获是巨大的,这也是自己积极参与开源社区最大的动力吧!下一步的贡献计划主要核心还是在 Kylin 4.0 上,比如 Kylin 4.0 目前缺失的 Sum Expression 功能、实时计算,同时继续优化 Kylin 4.0 的构建与查询性能。当然,在公司鼓励全员参与开源的情况下,我也希望自己能在更多开源项目上有所贡献,比如 Spark, Alluxio, JuiceFS 等项目。
Q
在开源 OLAP 领域,你认为目前 Kylin 遇到的挑战和优势是什么?
Kylin 的优势是采用预计算的方式,利用空间换时间,在大规模数据集下提供高并发、亚秒级交互式分析的能力,查询时间不会随数据的增加而线性增长,所以在数据集规模越大的场景下,Kylin 的优势也将越明显。不过,这也带来了一个比较明显的问题,即源数据更新后或 Schema 有变化时,重新构建 Cube 数据带来的代价将会比较大,那么如何尽可能地减少这个代价,其实一直以来都是 Kylin 面临的最大挑战。另一方面,随着实时计算的流行,用户对实时计算的需求也越来越迫切,Kylin 尤其是 Kylin 4.0 版本,在实时计算方面也需要完善加强。
Q
对想加入 Kylin 社区或成为 Kylin 贡献者的新手,您有什么建议?
每个人学习一门新技术或者框架,都会有自己的方式方法,以我个人的经验为例,一般第一步肯定是快速过一遍官方(手动强调“官方”)文档,了解下基本原理、概念及架构,接着就是实际操作,自己动手部署运行起来。一般我会同时下载源码,把开发环境搭建起来,因为动手部署过程中,肯定会遇到一些问题,此时结合源码来自己尝试解决,这个过程也是学习最快的途径。如果此时发现是文档不足甚至确实是 Bug,那么,你的第一个 PR 也就随之而来了:)
第一个 PR 其实只是一个开始,最最重要的,还是对技术的一份热情,能持之以恒吧。
Q
作为多个开源社区的贡献者,您是如何平衡日常的各项工作呢?
开源社区的项目大多都是基于 GitHub 作为远程异步协作的工具,除了一些紧急的 Bug Fix,一般一个 Issue 从提出,到代码提交,再经过 Review,最终合并,都是一个比较漫长的沟通过程。在日常工作中,可以多个 Issues 同时穿插进行,按照优先级,结合 GitHub Notifications 来安排 Coding, PR Review 等工作。
Q
做一名远程办公者,你的日常工作跟其他程序员有没有什么不一样的?
远程办公的方式,挺符合开源社区维护与开发的工作性质——远程异步协作,毕竟参与开源社区的人员,来自全球不同的时区和地区,通过 GitHub,Mailing List 等来进行沟通、讨论与协作。
要说与其他程序员最大的不同,我个人觉得是,远程办公需要有较强的自控力和对技术的自我驱动力,否则就容易被家庭所影响,在一个安逸的环境下人也容易懈怠。
标题的彩蛋来啦
工作生活两不误的智超同学👆
Kylin 社区那些优秀的开发者
Kylin Committer|95 后程序媛 C 位出道!
把 Kylin 迁移至 Kubernetes 背后的人是谁?
在此 Apache Kylin 社区提前祝各位开源社区的小伙伴们五一劳动节快乐!平时辛苦工作和贡献代码的大家也别忘了给自己放个假,努力工作,更要热爱生活哦~