Apache Kyuubi在网易的深度实践

本文介绍了Apache Kyuubi在网易的深入应用,包括其核心功能、多租户、Hive JDBC兼容性以及与Spark计算引擎的结合。Kyuubi在网易内部用于大数据处理,如数据仓库、Ad Hoc查询等,解决海量任务、复杂环境、复杂任务和多入口的挑战。案例分析展示了Kyuubi如何优化SQL任务性能,提高并发查询能力,并实现资源的有效利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享的内容主要包括三个内容:

1)Kyuubi是什么?介绍Kyuubi的核心功能以及Kyuubi在各个使用场景中的解决方案; 

2)Kyuubi在网易内部的定位、角色和实际使用场景; 

3)通过案例分享Kyuubi在实际过程中如何起到作用。4a4c5c065e7a6d7c2f3ef5b94895a938.png

Kyuubi是什么

开源Kyuubi是网易秉持开源理念的作品。Kyuubi是网易第一款贡献给Apache并进入孵化的开源项目。Kyuubi主要应用在大数据领域场景,包括大数据离线计算、数据仓库、Ad Hoc等方向。通过Kyuubi进入Apache的自我描述,可以知道Kyuubi是一个分布式、支持多用户、兼容DBC或ODBC的大数据处理服务。Kyuubi采用了Apache Spark作为计算引擎,并带来了很好的性能收益。Kyuubi未来也可能会支持其他的类似执行引擎,比如:Apache Flink。Kyuubi在2018年由网易开源到Github, 2021年成功进入Apache进行孵化,现在是处于孵化阶段。ae9b09017618159e5eec0fc533c0150e.png

1.1关键字

•开源:开源把整个项目带到了社区,在社区中的其它公司或技术开发人员,也会为Kyuubi带来新颖的想法,从而使Kyuubi可以发展得越来越好;

•多租户:作为一款企业级服务,多租户是不可缺少的功能,同时需要保证数据的安全性;

•兼容Hive JDBC:Hive是各大公司主流、常用的大数据处理引擎。兼容Hive JDBC可以很轻易帮助Hive用户无缝迁移到Kyuubi;

•Spark计算引擎:目前业界公认的、性能最好的、最流行的大数据计算引擎。因此Kyuubi的第一款内置计算引擎也选用Spark计算引擎;

大规模数据处理能力:需求分成两种情况:

•第一种情况是数据量的规模。比如:SQL查询,可能需要处理的数据量是GB或者TB级别的庞大规模,这就需要大规模数据处理能力来处理这种规模的数据;

•第二种情况是并发查询的规模。当任务非常多,每天会有几万个或者几十万个SQL查询任务在Kyuubi 上运行时,就需要有一个足够强大的处理能力,保证服务端可以及时响应用户的请求。

开箱即用:Kyuubi的务实、亲民设计理念,追求让用户以最低的成本、获取最好的效果。

1.2主流查询引擎对比

6eb465fe9ccf954d131ad75d455239e1.png

图 3 1.2主流查询引擎一览表

与目前主流的SQL大数据计算引擎进行对比,Kyuubi有着自己独特的优势:

•对外接口:都是基于Hive JDBC,如果使用Hive Server2迁移到Kyuubi时,整个切换是无缝、自然的使用Kyuubi;

•计算引擎:由计算引擎相关经验可以知道,Hive Server2基于MapRedeuce;Spark Thrift Server基于Spark,Kyuubi同样采用Spark计算引擎;

•多版本能力:Kyuubi在Spark基础上,具备提供多版本Spark的能力。在历史的迭代或产品的升级中,都会存在历史版本在测试和生产环境中,因此支持多版本的能力也非常重要;

•SQL解析优化:简单看就是毫秒级别或者是秒级别的优势,其实还有很多映射关系。比如Spark查一张表,需要Hive的全局锁,或者需要Hive全局锁控制整个的请求过程。在这个基础上,如果有多个用户同时去查询,可能会出现阻塞或者单点瓶颈的问题。Kyuubi可以把整个流程下推到引擎上,保证服务端可以及时的、快速的响应用户的请求,并且可以保持用户之间的引擎完全隔离;

•多租户:是企业级应用系统的基本功能,Kyuubi同时支持并保证多租户的数据安全性;

•动态资源配置:Hive的SQL基于MapReduce;Spark Thrift Server的资源配置并不是很灵活,原因在于Spark是全局单实例的方式,无论用户多少,都只能拥有一套资源配置场景。而Kyuubi提供了基于引擎粒度的资源配置,帮助用户实现任务间的快速隔离;

•高可用:是企业级SQL引擎的基本特性。Spark Thrift Server不具备这种能力;而Kyuubi提供了基于ZooKeeper的高可用解决方案,以支持高可用特性;

•并发查询能力:Kyuubi在基于高可用特性的基础上,可以轻松的在服务端进行横向的水平扩展,以保证并发查询能力,而Spark Thrift Server不支持并发查询特性;

•云原生:是近几年比较热门的话题,它可以帮助用户把整个集群进行混合部署,节省用户的资源使用。Kyuubi也同样支持以上云原生场景;

•云原生集成测试:在云原生的基础上,Kyuubi提供了与云原生相关的集成测试。Kyuubi是基于Minikube组件实现集成测试,这一环节在很多主流的技术组件中被忽视。通过完整的集成测试流程和高测试覆盖率,可以极大的降低用户在工作环境中出现bug的可能性。

1.3 Kyuubi的架构

Kyuubi的架构请看下面的具体的架构图。从左到右整张架构图可以分成三个部分:

1ca16740c93ee5b7305b0ac852819ead.png

图 4  kyuubi的架构示意图

1) 客户端是用户可以接触到的部分。比如:Hive Beeline、JDBC或ODBC接口,在内部,网易有数也是以客户端的角色连接到 Kyuubi;

2) Kyuubi服务端通过和客户端建立一些会话(KyuubiSession),会话最终被路由到实际的执行引擎。

3) 实际执行引擎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值