《10-3 Kyuubi 在小米大数据平台的应用实践.pdf》由会员分享,可在线阅读,更多相关《10-3 Kyuubi 在小米大数据平台的应用实践.pdf(32页珍藏版)》请在三个皮匠报告上搜索。
1、KYUUBI 在小米大数据平台的应用实践张耀东 小米研发工程师|01Kyuubi 在小米的落地过程02打造易用和高可用的Kyuubi服务03基于Kyuubi的改进04Kyuubi 新特性的应用目录 CONTENT|Kyuubi在小米的落地过程01|背景介绍历史遗留|现象 多个数据平台,没有统一入口和互通,存在数据孤岛现象 多种账号和权限体系,用户管理和理解成本高,没有形成统一资源管理的系统视角构建一站式的大数据开发平台问题和解决方案|导致的问题对用户:多个平台和多体系给用户体验较差,一个业务需求可能需要跨多个数据平台来完成 开发管理效率成本高对平台:各自的侧重点不同,都不能完全覆盖大数据场景下
2、的能力需求,同时还有能力重复建设问题,导致的资源浪费 问题排查和维护困难,需要堆人力统一数据服务入口结合我们数据平台统一元数据、统一权限管理和统一易用原则,统一数据服务入口服务主要解决:用户的易用性(一致的入口体验)SQL流量治理(代理多引擎)数据访问的安全性管控(入口收敛和降低安全风险)小米SQL服务历史情况SQL Proxy On Hadoop|能力 整体架构与kyuubi类似,打造统一入口 按场景划分了集群:-ETL:HiveServer和Spark APP代理(非常驻)-Ad-Hoc:STS、Kylin、Druid代理不足 SQL Proxy 没有完全剥离STS的实现,通过反射的方式进
3、行复用,代码耦合很高,依赖Spark特点版本,升级困难 底层引擎代理层没有统一抽象,与其他引擎适配困难,对底层引擎扩展性差 无法本地调试,依赖hadoop配置,在办公和服务环境网络隔离情况下,必须在开发机上完成完整的功能测试和调试,开发和部署路径长抽离STS实现模块作为独立的SQL Proxy 服务基于Kyuubi构建统一SQL入口为什么选择Kyuubi|业务需求 构建一站式的数据平台,统一的数据入口服务是其中关键一环,同时解决融入新体系后的统一权限和资源问题 Trino引擎的支持 易用、高可用和可持续演进的服务架构SQL Proxy的升级 完全兼容HiveThrift协议 松耦合、STS实现
4、完全剥离、可测试 灵活可扩展的代理多引擎的适配选择Kyuubi与与STSSTS和和HS2HS2的完全兼容一致的完全兼容一致高可用和资源隔离高可用和资源隔离清晰简洁的架构,可测试、可维护、可扩展清晰简洁的架构,可测试、可维护、可扩展社区高质量实现社区高质量实现业界公司生产环境大量运用业界公司生产环境大量运用业务和架构升级双重推动下,Kyuubi是最佳选择基于Kyuubi构建统一SQL入口架构升级|改造成本 整体架构上一致,SQL Proxy到Kyuubi Server的平滑迁移两周时间完成 架构模块实现清晰简洁,扩展功能非常容易 本地可测试可调试,极大提升开发效率升级效果 具备多引擎代理能力,主
5、要支持Spark/Trino/Hive/Doris 基于数据平台的workspace体系,实现权限验证和资源隔离 整体架构升级,具备良好的可扩展性和可维护性,代码简洁易于维护 更加规范化的Hive Thrift API 支持,各种生态可视化工具无缝接入统一SQL服务现状|SQL Proxy流量到Kyuubi的迁移 Kyuubi 入口日均50W左右,占所有SQL流量的80%Spark3.1(36W)/Trino(12W)/Hive(2.5W)Kyuubi Server服务稳定性99.9%每日SQL总量每日各引擎SQL总量引擎查询耗时(秒)AVGP95P90P70P50Spark3.133.611
6、3.868.214.93.3Trino27.5102.682.330.86.9Hive516.21879.4758.9268.4130.2打造易用和高可用的Kyuubi服务02|整体架构和流程|Kyuubi Server为基础构建了SQL 统一入口服务Kyuubi Engine 作为Spark SQL执行引擎层独立Engine Manager服务管理各类计算引擎Kyuubi Server层集成Ranger服务,支持基于数据平台的统一权限验证扩展适配Trino/Hive/Doris引擎服务指标和审计日志的可视化构建符合业务需求的Kyuubi用户使用交互|融合数据平台的资源管理基本单位(Works