写点什么

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

  • 2021-08-04
  • 本文字数:4894 字

    阅读完需:约 16 分钟

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-08-04 09:315497

评论

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

为财务团队合理进行角色分配和技术培训

智达方通

财务管理 财务转型

观测云:千人千面的监控观测平台

观测云

观测云 监控观测

Flow Simulator 案例分享:换热器的一维仿真

Altair RapidMiner

人工智能 HPC 仿真 智能制造 altair

揭秘移动IP:为何定位精度多停留在城市级?

郑州埃文科技

IP IP地址

万界星空科技注塑行业MES解决方案

万界星空科技

制造业 mes 万界星空科技 注塑MES 注塑行业

14 个Spring cache注解:缓存与业务解耦实战(必须收藏)

肖哥弹架构

Java spring 缓存 注解应用

iLogtail 开源两周年:感恩遇见,畅想未来

阿里巴巴云原生

阿里云 云原生 iLogtail

BRC铭文智能合约系统开发玩法详细丨规则方案丨需求部署

V\TG【ch3nguang】

【IoTDB 线上小课 06】列式写入=时序数据写入性能“利器”?

Apache IoTDB

Python与区块链:构建简单的加密货币钱包

我再BUG界嘎嘎乱杀

Python 区块链 编程 后端 开发语言

Cohere 创始人:语音是下一代用户界面;OpenAI 开放 GPT-4o 定制新功能丨 RTE 开发者日报

声网

望繁信科技入选2024年第3批上海市高新技术成果转化项目名单

望繁信科技

数字化转型 流程挖掘 高新技术企业 流程智能 数字北极星

Python Tuples(元组)详解

我再BUG界嘎嘎乱杀

Python 编程 后端 元组 Tuples

定格精彩瞬间!详解六自由度技术原理及应用

快手技术

视频技术

MES系统在铜加工行业的应用

万界星空科技

mes 万界星空科技 铜业 制造业工厂 铜加工

《黑神话》火到破纪录,老黄都要到游戏展秀一把:全景光追英伟达独享,同款技术还有20+游戏在路上

Openlab_cosmoplat

AI 游戏

今日分享丨浅谈iGIX并行启动

inBuilder低代码平台

企业中使用最多的十大人事资源管理系统盘点

爱吃小舅的鱼

研发团队 人力资源管理

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2024年7月刊

墨天轮

MySQL 数据库 oracle sql postgresql

2024-08-21:用go语言,给定一个从 0 开始索引的整数数组 nums 和一个整数 k,请设计一个算法来使得数组中的所有元素都大于或等于 k,返回所需的最少操作次数。 每次操作可以执行以下步骤

福大大架构师每日一题

福大大架构师每日一题

青椒云上线《黑神话:悟空》专属游戏云电脑,免安装,即点即用!仅需2.98/h

青椒云云电脑

云电脑 云电脑平台 黑神话悟空

云手机解决了TikTok哪些账号运营难题?

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 tiktok运营

三问AI手机:什么意图?怎么识别?何种框架?

脑极体

AI

JimuReport 积木报表 v1.8.0 版本发布

JEECG低代码

HarmonyOS地图服务:深度解析其丰富功能与精准导航实力

白晓明

HarmonyOS NEXT Map Kit

漫谈端到端测试

老张

软件测试 质量保障 端到端 测试方法

豆瓣评分9.0!Python3网络爬虫开发实战,堪称教学典范!

我再BUG界嘎嘎乱杀

Python 编程 爬虫 后端 开发语言

跟着 iLogtail 学习高质量软件建设

阿里巴巴云原生

阿里云 云原生

云手机在亚马逊店铺运营中能发挥什么作用

Ogcloud

云手机 海外云手机 云手机海外版 亚马逊运营 亚马逊云手机

更快更强,SLS 推出高性能 SPL 日志查询模式

阿里巴巴云原生

阿里云 云原生 日志服务

短视频生成与AI的结合应用,Web/App RPA 智能化应用

霍格沃兹测试开发学社

Apache Kyuubi PPMC燕青:为什么说这是开源最好的时代?_文化 & 方法_凌敏_InfoQ精选文章