暑期2021优秀学生专访:注重计划的开源“社员”——陈政羽

原创
01/14 14:10
阅读数 592

开源软件供应链点亮计划-暑期 2021已经收官,在为期三个月的开源实践中,我们不仅收获了529个结项项目,还收获了各位参与项目的宝藏同学们。为了进一步巩固这些新生的开源力量,组委会特邀请指导委员会老师从4个方向评选出了具有代表性的20位优秀学生。

本次采访,我们邀请最快进步奖获奖者陈政羽,分享自己的开源故事和活动感悟。

优秀学生迷你简历

姓名:陈政羽

性别:男

年龄:25

学校:广州科技职业技术大学

喜欢的书:《凤凰架构》、《黑天鹅》、《反脆弱》

兴趣爱好:健身、旅游

最喜欢的技术明星:阳哥

最喜欢的开源软件:Apache Flink、Apache Carbondata、Spring

最喜欢的数码产品:Mac

最喜欢的开源社区:Flink中文社区、开源社

 

--自我介绍--

1、请简单介绍一下自己

各位开源之夏的同学和老师大家好,我是来自开源之夏2021的陈政羽,平时负责Flink社区日常技术文章稿的翻译和产出,协助社区整理大数据实时计算引擎相关知识点和文章,与此同时也是 Apache Carbondata Contributor 和 Streamx Contributor,平时的爱好是旅游和健身。目前正在真有趣游戏科技研究中心 - 基础设施研发部,负责基于 K8S 的 Flink 大数据部署作业平台构建与作业研发,为真有趣构建部署、提交作业的一站式 Flink 智能作业平台和 SQL 平台,欢迎各位多多与我交流大数据技术(可关注公众号:Java大咖说,或者发送至邮箱jam_gzczy@aliyun.com)。

 

2、毕业后是什么原因让你决定重返校园的呢?

首先,上次毕业之后,有了工作和生活经历,我会带着更强的目标性去做某件事情。当时我期望有自己的个人时间去研究一些技术并做自己的事情,所以就决定重返校园,这也是让我决定重返校园的最重要理由;其次,2020年是新冠大流行之年,这也让我大部分时间是在家里办公,有时间思考自己以后的一些职业规划,所以经过慎重考虑就决定重返校园了。

 

--关于暑期2021--

3、请简单介绍一下暑期2021中你的开源项目

有幸在开源之夏选上“CarbonData 与 presto集成的优化”课题,这个课题主要是针对presto使用CarbonData查询上做更多的一些优化。

首先我先介绍一下CarbonData是什么?CarbonData是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索引、压缩和编码技术,以提高计算效率,有助于加速超过PB数量级的数据查询,可用于更快的交互查询。同时,CarbonData也是一种将数据源与Spark集成的高性能分析引擎。CarbonData作为Spark内部数据源运行,不需要额外启动集群节点中的其他进程,CarbonData Engine在Spark Executor进程之中运行,运行架构如下:

 

CarbonData特性:

  •   SQL功能:CarbonData与Spark SQL完全兼容,支持所有可以直接在Spark SQL上运行的SQL查询操作。
  •   简单的Table数据集定义:CarbonData支持易于使用的DDL(数据定义语言)语句来定义和创建数据集。CarbonData DDL十分灵活、易于使用,并且足够强大,可以定义复杂类型的Table。
  •   便捷的数据管理:CarbonData为数据加载和维护提供多种数据管理功能。CarbonData支持加载历史数据以及增量加载新数据。加载的数据可以基于加载时间进行删除,也可以撤销特定的数据加载操作。
  •   CarbonData文件格式是HDFS中的列式存储格式。该格式具有许多新型列存储文件的特性,例如,分割表和数据压缩。

CarbonData具有以下独有的特点:

  •   快速查询响应:高性能查询是CarbonData关键技术的优势之一。CarbonData查询速度大约是Spark SQL查询的10倍。CarbonData使用的专用数据格式围绕高性能查询进行设计,其中包括多种索引技术和多次的Push down优化,从而对TB级数据查询进行最快响应。
  •   高效率数据压缩:CarbonData使用轻量级压缩和重量级压缩的组合压缩算法压缩数据,可以减少60%~80%数据存储空间,很大程度上节省硬件存储成本。华为首个大数据开源项目,PB级融合数据方案Apache CarbonData 。大家可以fork和star carbondata社区 https://github.com/apache/carbondata

 

4、在你的项目计划中,为了保证项目的顺利进行,规定了每周的开发时间,你认为保证项目顺利进行有哪些方法?

首先,我觉得做好项目的时间规划是十分重要的,我会每个星期进行计划安排,把做完的东西打上勾,然后给自己规划项目和项目的小功能项预计完成的时间,把控好自己的开发进度;其次,在项目执行过程中,要及时和导师沟通反馈项目上遇到的难点问题,并讨论解决,因为导师有更丰富的项目经验和对项目更深刻的了解,所以导师给予的建议和指导性思维,有助于我们事半功倍地解决问题。我的项目导师陈亮老师经常在百忙之中抽出时间,带着我们开小组会,指导项目方向并解答问题,对我完成项目有很大的帮助。

 

5、在项目进行中遇到的印象最深刻的困难是什么?如何解决的?

我解决问题一般分为三步骤:发现问题、评估问题难度和解决所需要花费时间、解决问题。周志明老师曾说:“我们东方人的骨子里更注重的还是一次把事做对做好,尽量别出乱子;而西方人则要“更看得开”一些,把出错看做正常甚至是必须的发展过程,只要出了问题能够兜底使其重回正轨便好。”在大型软件中,出错是不可避免的,可能修改了一个小东西就牵一发而动全身。例如在这次项目中,部署依赖组建繁多,导致版本冲突无法编译。

这个时候不如“更看开一些”,不要着急,先找到解决问题的方法。首先我们要评估问题的严重程度、对后续流程的影响大小、修复问题所需要花费的时间等等,然后制定解决方案,按照自己的计划和节奏推进,遇到问题要学会求助他人,不要自己孤身奋战。我首先使用Maven Helper 逐步排查依赖问题,排查掉错误依赖后进行重新打包安装程序,逐步去耐心调试直至成功。

 

6、在本次活动中获得了最快进步奖,有什么经验可以与之后想参与活动的同学分享吗?

首先十分感谢能获得最快进步奖,这离不开陈亮老师、群里的各位导师和同学一直以来对我的辅导和帮助。我认为同学们在参与比赛时,最重要的是享受比赛带来的知识和技能的提升,其次是感受开源社区的这种氛围,让自己更加了解开源社区中的某个软件或者一些流程,为以后做项目打下扎实的技术基础。

 

7、这次的项目和你之前工作和学习参加的项目有什么不同吗?对你有什么帮助吗?

公司的项目更多是满足公司某个业务,给公司带来实际价值,服务对象是公司;但是在Apache基金会中,‘社区大于代码’ 是Apache之道的核心内容,服务对象是世界用户,拥有了社区和用户群体,软件才能走的更稳、更远。开源社区的项目是需要各位一起共同探讨、合作的一个项目,这样才有助于社区的多元性。例如在项目中需要新增支持Trino的功能,我们通过社区邮件、ISSUES去进行讨论功能点、所需帮助等等问题,对我有很大的帮助。

 

--关于开源和学习--

8、有参加过开源社区吗?请简单介绍一下你参与开源社区的经历

除了刚刚上文描述的参与Apache Carbondata 的一些开发,在参加比赛之前还参与过 Apache Flink 中文社区的开源,负责Flink 技术文章的整理与输出,其中包括阅读量较高的Flink CDC 2.0以及一些技术深入分析文章Flink 1.14 前言预览Flink 1.13 SQL 深入解读Flink 1.12 资源管理新特性 等。这些文章在Github仓库也已经上传,欢迎各位同学前往查看进行指点,喜欢的同学也给个小星星鼓励一下。我也会去关注 Flink周边的一些生态软件开发,如 StreamX 一站式 Flink 开发平台的代码开发与宣传,以及参与一些内部技术讨论。

 

9、可以结合你参与开源社区的经历,给想要参与开源的同学一些建议和鼓励吗?

其实我们人人都可以参与开源,参与进来并没有大家想象的那么困难。例如我在使用某个软件的时候,刚刚好发现它有一些无法满足我的场景或者一些bug,这个时候我们就可以对此进行改造,然后回馈社区,这就是代码层面的贡献;你也可以贡献一些非代码的东西,例如技术文章、技术分享等等一些内容。通过贡献开源你可以认识到很多志同道合的朋友和开发者,然后一起进步。

 

10、在你的职业发展规划中,开源对你有什么帮助吗?

开源我可以认为是作为当今程序员必不可少的一环,也是程序员一门必备艺术吧,可以这样说,当世界上有人用你的代码,产生了价值,其实你会有一种自豪感在内心产生的。通过开源项目,使我了解更多大数据在实际生产案例的使用场景,也促使了我在工作中去更加深入去了解这个技术。

 

11、支持你参与开源的动力是什么?

开源这颗种子从我返回校园的时候就已经埋下了,我认为支持开源的最大动力是对这款软件或者这个行业投入的时间和热爱程度,是否愿意牺牲一些自己的个人时间去为之付出,同时我也认为参与开源社区可以对我们认识软件可以有多了一个新的角度,例如从一个使用者的角度转变为一个开发者的角度去看待一些软件中的问题,同时我们也可以参与进去更好的去把它完善好,这里面肯定会有一种自豪感促使我去做好这件事。

 

12、之后会继续参与开源吗?会着重在哪方面做贡献?

开源是一份持之以恒的工作,从这次开发中我深刻地体会到,它不仅仅体现在代码层面做贡献,还在于在社区的沟通、协调与合作,比如通过邮件、ISSUE 等沟通项目目标和工作方向,然后达成社区共识。在之后的开源项目中我也会更加留意这一部分的工作。与此同时,我会继续在Flink中文社区、Flink周边生态设施、以及如何融合Carbondata和Flink的一些使用场景等方面,进行探索,为这些项目做出贡献,包括文章产出、代码产出等,给更多的开发者和使用者带来更好用的软件。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部