行业AI实战手册来了!洞察金融风险、辅助诊疗、检测缺陷、体验AI课堂,尽在AI...... 了解详情
写点什么

Apache Kyuubi PPMC 燕青:为什么说这是开源最好的时代?

2021 年 8 月 04 日

Apache Kyuubi PPMC燕青:为什么说这是开源最好的时代?

在大数据领域,Apache Spark 早已成为最炙手可热的计算引擎。随着 Spark 两年磨一剑,正式发布 3.0 版本,带来诸多新特性的 Spark 更是拥有了无限想象空间。不过对于用户而言,平台的技术门槛始终是个不小的挑战。也正因如此,不少项目选择直接建立在 Spark 之上,通过将平台的能力统合,并引入新的特性,从而降低用户使用门槛,实现大数据价值的最大化。

 

Kyuubi 正是这样一个拥抱 Spark、高性能的通用 JDBC 和 SQL 执行引擎,由网易数帆旗下有数大数据团队开源。Kyuubi 提供标准化的接口,赋予用户调动整个数据湖生态的数据的能力,使得用户能够像处理普通数据一样处理大数据。

 

6 月 21 日,Apache 软件基金会宣布,Kyuubi 以全票通过的表现,正式进入 Apache 基金会孵化器。这也侧面证明了 Kyuubi 的受欢迎程度。

 

近日,InfoQ 有幸采访到了网易数帆技术专家、Apache Kyuubi PPMC、Apache Spark Committer 燕青,和他聊了聊 Kyuubi 一路发展背后的故事,以及他对于开源的理解。

“九尾狐”Kyuubi

 

Kyuubi 的命名源自中国神话《山海经》,意为“九尾狐”。狐会喷火,象征 Spark;狐有九尾,类比多租户。这个命名也体现出了 Kyuubi 系统设计之初的主要目的——在 Spark 上实现多租户。

 

事实上,在 Kyuubi 之前,市面上已存在具备类似能力的产品,比如 Spark ThriftServer(简称 STS)。这是 Spark 社区现有的、基于 HiveServer2 实现的 Thrift 服务,旨在无缝兼容 HiveServer2。

 

虽然 STS 的性能极佳,但当前并不完善,尤其在企业场景下存在较多短板。比如,单 Spark 应用实现的 STS 并不能完整支持多租户,因为 STS 本质上是一个 Spark Application,整个 Application 只有全局唯一的用户名,并同时包括 Driver 端和 Executor 端。而对于像网易这样有多条产品线的互联网公司来说,每条产品线的数据在一定程度上是隔离的。因此,只有支持多租户才能满足公司对于数据安全、资源隔离、高可用以及高并发的要求。

 

这也就促使网易内部开发了 Kyuubi。Kyuubi 在统一接口基础上,拓展了 STS 在多租户模式下的使用场景,并依托多租户概念获得了完善的资源隔离共享能力和数据安全隔离的能力。

 

在 2018 年上线之初,Kyuubi 的定位只是在 Spark 上实现多租户,再引入一个比较细粒度的权限控制,做一个小而美的系统。因此,Kyuubi 的第一代架构主要面向的是 BI 产品。但是正式上线并开源后,团队发现用户并不在意系统本身的设计初衷以及使用场景是什么,所以当一些用户使用 Kyuubi 做 ETL 等工作时,用起来磕磕绊绊,反馈也不是特别好。

 

苦苦挣扎一年后,团队决定深入 Spark 社区去贡献,从中找到设计一套比较通用的、面向更多用户的架构方案灵感。这期间,Spark 也正在酝酿一个大版本的跨越式升级,从 2.4 直接来到 3.0 版本。Kyuubi 团队在其中参与了很多工作,并一同推动 Spark 社区发展。

 

“在这个过程中,我们对 Spark 的内核机制有了一个更加充分的了解。在这个基础上,我们意识到我们对于 Kyuubi 原本的构想是不太可持续的,Kyuubi 的第一代架构视野比较小,应用场景也很少。因此,我们觉得是时候对 Kyuubi 的架构进行一番革新了。”燕青回忆道。

 

2020 年,团队重新设计了 Kyuubi 第二版的架构,新架构的使用场景更加丰富。具体来看,Kyuubi 的使用场景主要包括以下三个方面:

 

1.替换 HiveServer2,轻松获得 10~100 倍性能提升。

  • Kyuubi 高度兼容 HiveServer2 接口及行为,支持无缝迁移;

  • Kyuubi 分层架构,消除客户端兼容性问题,支持无感升级;

  • Kyuubi 支持 Spark SQL 全链路优化及再增强,性能卓著;

  • 高可用、多租户、细粒度权限认证各种企业级特性统统都有。

 

2.构建 Serverless Spark 平台。

  • Serverless Spark 目标绝对不是让用户调用 Spark 的 API、继续写 Spark 作业;

  • 通过 Kyuubi 预置的 Engine 模块,用户无需理解 Spark 逻辑,入门门槛极低;

  • 用户只需通过 JDBC 及 SQL 操作数据专注自身业务开发即可,资源弹性伸缩,0 运维;

  • 支持资源管理器(Kubernetes, YARN 等),Engine 生命周期,Spark 动态资源分配 3 级不同粒度全方位的资源弹性策略;

  • 支持 YARN/Kubernetes 多种资源管理器同时调度,保障历史作业安全迁移上云;

  • Spark 自适应查询引擎(AQE)及 Kyuubi AQE plus,提供澎湃动力。

 

3.构建统一数据湖探索分析管理平台。

  • 支持 Spark 所有官方数据源及第三方数据源;

  • 支持 Spark DSv2 元数据管理,直观进行数据湖构建及管理;

  • 支持 Apache Iceberg/Hudi, DeltaLake 等所有主流数据湖框架;

  • 一个接口一个引擎一份数据,提供统一的分析查询、数据摄取、数据湖管理平台;

  • 批流一体,支持流式作业(Upcoming)。

 

当前,Kyuubi 不仅在网易内部承接了大量工作,在业内也有多家大型公司采用 Kyuubi 解决问题。“Kyuubi 新架构做出来之后,很多其他公司的小伙伴也开始活跃地参与到这个项目中来,慢慢地参与的人多了以后,我们就想着是不是可以去 Apache 软件基金会进行孵化。”燕青说道。

独行者速,众行者远

 

2021 年 3 月份,团队开始正式筹备将 Kyuubi 捐赠给 Apache 软件基金会。事实上,拥抱 Apache 软件基金会的念头一早就扎在 Kyuubi 团队成员心中了。在燕青看来,做下这一决定背后的原因主要有以下 3 点:

 

  • 第一,团队以及公司都有意愿去做这件事情。网易内部本身始终贯行开源开放的策略,所以当团队和公司提出这个想法后,公司内部也给予了一定的支持,比如为项目配套了一些运营力量等等。

  • 第二,随着第二版架构的登场,Kyuubi 发展路线日益清晰,也有越来越多的开发者参与到项目中来,社区规模逐步扩大。

  • 第三,团队成员发现一些潜在的 Kyuubi 用户或是开发者产生 IP 产权方面的顾虑。此前即便 Kyuubi 已经开源,但依旧是属于网易的产品,将项目捐赠给 Apache 软件基金会后,可以消除这些开发者的顾虑,进一步吸引更多的开发者参与其中。

 

6 月 21 日,Apache 软件基金会宣布,Kyuubi 以全票通过的表现,正式进入 Apache 基金会孵化器。根据投票结果,Kyuubi 获得了 13 个约束性投票(binding votes)和 8 个无约束性投票(non-binding votes),投票全部持赞同意见,无弃权票和反对票。

 

在走向 Apache 软件基金会的过程中,燕青坦言 Kyuubi 很幸运地得到了来自公司内外的不少帮助。

 

“有些帮助是无形的,有些帮助是有形的”,燕青说,“Kyuubi 能够成功进入 Apache 基金会孵化器,很大程度上是因为那些开源前辈们已经把路铺好,很多前辈在国内开源领域深耕多年,比如姜宁老师等等,他们在前期做的一些努力让我们后人能够乘凉。理论上来说,现在的项目要想进入 Apache 软件基金会孵化,比他们那个年代要更加容易一些。

 

“另外,姜宁老师发起并创立的 ALC Beijing 也会帮助我们国内开发者或企业去孵化一些本土项目,比如他们会把一些 Apache 软件基金会的文档翻译成中文,这对于英文不太好的开发者来说帮助非常大。”

 

在这个过程中,Kyuubi 也得到了不少来自 Apache 软件基金会的支持与帮助。“Apache 的指导文档本身就对我们产生很大的帮助。如果没有这个文档,你根本不知道这一步做什么,下一步做什么。Apache 的指导文档写得非常详细,就算没有其他人的帮助,只要你耐心地把这些文档阅读下来,也能更好地完成项目捐献。”

 

在 Kyuubi 项目官宣进入 Apache 孵化器的那天,Kyuubi 特别感谢了很多给予过自己帮助的人,比如给 Kyuubi 提供指导的 Champion 和 Mentors 姜宁,Mentors 章剑锋、张铎、Akira Ajisaka。也有为 Kyuubi 提出 issue 和建议的伙伴们,以及为 Kyuubi 做出贡献与支持的国内外数十家企业用户。

 

独行者速,众行者远。而这,也是开源一贯传承的精神。

发展社区的关键在于多倾听开发者的声音

 

现在,距离 Kyuubi 进入 Apache 大家庭已有月余,至于进入 Apache 之后发生了哪些变化,燕青认为主要体现在项目管理和社区管理两个方面。

 

在过去,Kyuubi 归属于网易,项目管理者相当于拥有超级管理员的权限,可以直接对项目做决策,发版时间也不固定。进入 Apache 孵化器后,项目有发版等重大决策时,需要在邮件列表里一起讨论,并发起投票。内部沟通讨论结束后,还需要在孵化器邮件列表里面再去发起讨论、投票,此外,Apache 软件基金会方面也会帮忙做项目审查,看下在法律或是其他方面是否合规。相较过去,虽然整个决策链路长了一些,但这样的层层讨论对项目本身来说更负责,借助这些外脑,项目的发展路线也愈加清晰。

 

在社区管理方面,燕青坦言“以前我们比较随意,现在进入 Apache 软件基金会后,我们定了一个目标就是要把社区建立起来。”在燕青看来,社区是由人构成的,要想让社区建立并发展起来,需要多倾听社区的声音,多去了解这些个人开发者或是公司的需求

 

至于如何提高社区的活跃度,燕青认为最重要的一点是要尽量避免犯一些错误,要以开放友好且包容的态度去接纳开发者。对于社区新人,要更加有耐心,给他们时间去成长。此外,在宣传方面还需要加大力度,社区运营者也需要积极地去配合宣传。

 

最后在项目上,要更加注重品控的把握。“如果 Release 版本不太稳定的话,从用户层面来说,会劝退很多用户”,燕青解释道。

Kyuubi 的终极目标:让大数据平民化

 

对于 Kyuubi 的未来,燕青也有着很高的期待:希望建立在 Apache Spark 和数据湖技术之上,统一门户,打造一个理想的数据湖管理平台,让用户处理大数据能像处理普通数据一样轻松。

 

具体来说,第一要增强 Kyuubi 对 Kubernetes 云原生的支持,让 Kyuubi 提供的服务以及计算资源都可以在容器中进行;第二要增强 Kyuubi 对数据湖的支持,让用户能够更简单地管理、使用和建设数据湖,实现所见即所得;第三要继续深入优化引擎侧,增加流式场景,打造批流一体的平台。

 

“未来,希望 Kyuubi 可以让 Spark、让大数据平民化”,燕青憧憬道。

“这是开源最好的时代”

 

除了是 Apache Kyuubi 的作者,燕青还有多个身份,比如 Apache Spark Committer、Apache Submarine Committer。从业多年,燕青始终在开源大数据领域深耕,对他来说,“开源是可以做一辈子的事情”,而他也始终热爱开源,信仰开源。

 

在燕青看来,开源非常利于个人学习和提升自己。“很多开源大神把自己的代码或 idea 放在 GitHub 或其他开源平台上面,如果你选择在某一技术领域深耕的话,可以在这些平台中找到很多学习资料,边学边做”。

 

通过在开源社区的不断学习,燕青也实现了从医学信息学博士到顶级开源社区核心贡献者的身份转变。

 

提及自己积累下来的经验,燕青觉得在持续学习之外,也要拥有良好的心态,以及明确且专注的技术方向。“开源是一个圈子,这个圈子是开放的,但从个人的角度来看,每个人的想法不同,圈子外的人或多或少会感觉到有一堵墙的存在。如果你能够拥有良好的心态,谦虚、友善地去和社区沟通,自然也能换来同样友好的回应,从而形成良好的回路。

 

此外,从技术角度来讲,方向一定要明确,专注在一个领域内深耕,从而慢慢从不擅长变得擅长。比如我自己就是一直围绕着 Spark 这个项目去深耕,当我在这个项目里做得差不多的时候,我并不是离开它,而是继续在这个项目里去帮助别人,包括我做的 Kyuubi 也是围绕着 Spark 去做的。”

 

当前,虽然国内开源发展存在进步与乱象并生,机遇与挑战共存的状态,但燕青坚信“这是开源最好的时代”。

 

在其看来,很多开源前辈已经在这个领域做出了长时间的铺垫和积累,很多热爱开源的开发者也都投入其中,大家都在为开源贡献出自己的一份力量,帮助它朝着更好的方向去发展。

 

“从某种程度上来讲,开源氛围好与坏是在描述一个圈子,是圈子就会有一堵无形的墙,有时墙里面的人会翻出去把墙外的人引进来,有时墙外的人会主动地进到墙里。其实只要你学会融入它,帮助它去改善,就一定会朝着好的方向去发展。另外,从开源角度来讲,有些项目正确地衰落,其实正说明我们在往更正确的方向走去”,燕青说道。

 

对于国内开源的未来,燕青期望可以有越来越多的优秀开源项目诞生自高校,让开源氛围更加“年轻化”。监管层面,也希望有一些相应的规范,帮助开源更好地持续发展。

  

嘉宾介绍:


燕青,Apache Kyuubi PPMC,Apache Spark Committer,Apache Submarine Committer。目前就职于网易数帆有数大数据团队,专注于开源大数据领域。

2021 年 8 月 04 日 09:311697

评论

发布
暂无评论
发现更多内容

群英荟萃 | UINO优锘科技ThingJS平台亮相华为开发者大会

森友小锘

物联网 3D可视化 数字孪生

5月日更,InfoQ 高定T-恤,达标来领~

InfoQ写作平台官方

活动专区 5月日更

极光开发者周刊【No.0430】

极光开发者

【得物技术】网络优化——域名解析原理&实践

得物技术

网络 域名解析 域名 得物技术 实践

又一个免费良心的下载站,答应我:别再下到流氓软件了。

彭宏豪95

ios 效率 工具 下载 4月日更

对于即将工作的IT大学生,该如何变强?

cv君

程序人生 IT 科技 问卷 有意义

面试:某云面试题目整理

程序员架构进阶

Java 面试 自我提升 28天写作 4月日更

让电影票房飞一会儿,五一换个姿势重温经典

华为云开发者社区

音视频 电影修复 视频超分 媒体处理 混合失真

2.8W字Java基础学习和书籍推荐,真正意义上的从0到1学Java,才不是培训机构那种大纲文

北游学Java

面向对象 线程 集合 java基础 IO流

什么,你管这叫“线程安全”?

Java大蜗牛

Java 程序员 编程语言 线程安全 后端技术

使用IDEA模拟Git命令使用的常见场景

程序员小毕

Java git spring 程序员 IDEA

博睿数据DataView标准化指标管理,助力企业快速制定SLO

博睿数据

数据中台 博睿数据 dataview

聪明人的训练(三十)

Changing Lin

4月日更

SpringCloud-技术专题-Feign组件基本使用(1)

李浩宇/Alex

Configuration Hystrix spring-cloud Fegin Ribbon

我与写作平台的初次接触

Aldeo

1 周年盛典 我和写作平台的故事

云原生除了K8S、微服务,还有...?

浪潮云

云计算

IT 专业大学生被培训机构“渗透”情况调查

梦想橡皮擦

签约计划

弱密码会毁灭物联网(IoT)吗?

龙归科技

密码管理

Serverless的定义

刘宇

音频变速变调原理及soundtouch代码分析

floer rivor

音视频

已跪!Java全能笔记爆火,Java教程/Java包/Eclipse安装指南全有

牛哄哄的java大师

Java

新人小白福利来啦!精简版java知识总结,阿里P8大牛看完都说绝了

牛哄哄的java大师

Java

带你温习一下webpack配置

IT皮皮蟹

npm nodejs webpack

参加人气创作者的一些感悟

石云升

28天写作 4月日更 1 周年盛典

软件 IT专业的高校大学生是否写文调查问卷

Bob

问卷调查 行业分析能力考核 高校大学生 写文

科技赋能 博睿数据引领教育行业走入“服务可达”时代

博睿数据

在线教育 博睿数据 服务可达

引入:从云计算到Serverless

刘宇

高校软件IT专业大学生课外培训调查问卷

穿过生命散发芬芳

行业分析能力考核

Boss直聘转发超100W次Java面试突击手册 火遍全网

比伯

Java 编程 程序员 架构 计算机

​太厉害了,终于有人把Spring条件注解讲明白了,送你上岸!

飞飞JAva

spring

聆听极致 ——声网 Agora

cv君

算法 音视频 科技 声网 能力

MySQL 核心特性与优化

MySQL 核心特性与优化

Apache Kyuubi PPMC燕青:为什么说这是开源最好的时代?-InfoQ