- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
T3 出行 Apache Kyuubi FlinkSQLEngine 设计和相关实践
杨华
资深大数据工程师
T3出行大数据平台负责人, Apache Kyuubi committer
李心恺
高级大数据工程师
T3出行高级大数据工程师,主要负责计算引擎侧开发和应用
**演讲主题:**T3 出行 Apache Kyuubi FlinkSQLEngine 设计和相关实践
演讲概要:
杨华:T3 出行在Apache Kyuubi 集成FlinkEngine 做出的优化和应用。
李心恺:DSS 一站式开发平台集成Apache Kyuubi 作为 SQL任务计算中间件的相关实践
展开查看详情
1 .Apache Kyuubi ——Flink SQL Engine设计&SQL计算中间件集成 杨华,李心恺 2022.03.12
2 . 01 JDBC之于Flink的现状 02 Flink SQL Engine的设计与实现 03 Flink SQL Engine展望 CONTENT 04 What`s Kyuubi &Why Kyuubi 05 Linkis 集成 Kyuubi实践过程 06 Kyuubi在一站式平台使用场景
3 .JDBC之于Flink的现状
4 .JDBC之于Flink现状
5 .Flink SQL Gateway&JDBC Driver设计与实现
6 .Flink SQL Engine的设计与实现
7 .Flink SQL Engine
8 .Kyuubi Flink engine 架构图
9 .Flink SQL Engine QuickStart Demo 确保你将Hadoop classpath添加到PATH环境变量并启动Flink local custer!
10 .Flink SQL Engine QuickStart Demo
11 .Kyuubi Flink engine 目前进展 Flink社区大佬们的鼎力支持: • 蒋晓峰-阿里巴巴Blink团队(23个PR) • 林小柏-网易游戏实时团队(11个PR) 当前提供的功能: • DDL/DML • JDBC: GetXXX/ShowXXX • set/show/reset properties • UDF • Flink Session Standalone/on YARN https://github.com/apache/incubator-kyuubi/issues/1322
12 .Flink SQL Engine展望
13 .Flink 未来的 deploy mode https://issues.apache.org/jira/browse/FLINK-26000
14 .Flink SQL Engine 接下来的规划 ➢ Flink SQL Engine on YARN(application) ➢ Flink SQL Engine on K8S ➢ Flink SQL Engine shared level enhancement ➢ Support session jars management ➢ ….. https://github.com/apache/incubator-kyuubi/issues/2100
15 .What`s Kyuubi &Why Kyuubi
16 .T3出行 >> 是一家基于车联网驱动的智慧出行平台,拥有海量且丰富的数据源。因为车联网数据多样性,T3出行构建了以 Apache Hudi为基础的企业级的数据湖,并在此之上构建了BI分析平台,任务调度,机器学习平台,数据质量,权限管理 等一系列平台,为业务提供强有力的支撑。 随着平台越来越多,业务结构越来越复杂,年初经过一段时间的一站式数据应用交互管理平台的技术调研选型,我们 最终确定以微众银行开源的DataSphere Studio作为Insight的一站式数据应用交互管理平台,并根据公司业务需要进行一 些定制开发。
17 .DSS引入Kyuubi之前架构 一站式平台入口 数据地图 数据开发 机器学习 计算中间件 计算引擎 任务调度 Hive Flink 资源编排 YARN Dolphin Scheduler 数据存储 OBS 数据接入 Kafka
18 .遇到的问题 01 跨存储 数据分布在OBS、Hudi、Clickhouse等不同存储,需要写代码关联分析增加数据处理 门槛和成本,Linkis对此解决有限 02 SQL不统一 Hive不支持upsert update delete 等语法操作hudi表。同时Mongodb、Clickhouse 等语法又各不相同,开发转换成本较高 版本耦合 03 Linkis 和Hive版本、Spark版本强耦合 ,集成spark3.X难度大,同时Linkis中的Spark 引擎对于cluster运行模式、AQE、动态资源等特性的支持还不完善
19 . 什么是Apache Kyuubi ➢ Thrift JDBC/ODBC 服务 ➢ 可扩展 ➢ 多租户和分布式 ➢ Servless SQL on Lakehouse
20 . 选择Kyuubi 优势 HiveServer2 Linkis Kyuubi (Hive on Spark) 接口 HiveJDBC Http HiveJDBC SQL语法 Hive SQL Spark SQL、Hql Spark SQL SQL解析 Server端 Engine端 Engine端 任务提交 拆分成多个RemoteDriver提交 共享Server这 个Spark程序,分布式线程调度 USER、GROUP、CONNECTION级别隔离 Spark兼容性 特定单一版本支持 和Spark、Hive特定版本绑定 多版本适配 Catalog管理 HMS HMS HMS、第三方Catalog 高可用 有 有 有 多租户 有 有 有 权限控制 SQL Standard,细粒度 Hive 自身权限控制 SQL Standard.细粒度 性能 —般 —般 好 客户端并发 水平扩展 水平扩展 水平扩展 动态资源配置 SQL粒度 无 Engine粒度 计算资源管理 YARN 自我管理.Fair Scheduler Pools YARN、Kubernetes等 资源占用周期 SQL执行期间 引擎启动期间 资源通过Engine维度来 申请和释放
21 .Linkis 集成 Kyuubi实践过程
22 .Linkis 集成Kyuubi流程 Linkis 支持新增一个自定义引擎。Linkis 支持多种引擎类型。 其中ComputationExecutor:是常用的交互式引擎Executor,处理交互式执行任务,并且具备状态查 询、任务kill等交互式能力。 Kyuubi引擎是一个交互式引擎,因此在实现Executor时,继承了ComputationExecutor,并做了以下 maven依赖的引入。 具体可参考linkis官方文档《如何快速实现新的底层引擎》
23 .Linkis 集成Kyuubi流程 主要是要实现: ✓ KyuubEngineConnPlugin,启动EngineConn时的入口 ✓ KyuubEngineConnFactory,实现如何启动一个引擎连接器,和如何启动一个引擎执行器的逻辑 ✓ KyuubEngineLaunchBuilder,用于封装EngineConnManager可以解析成启动命令 ✓ KyuubiExecutor为执行器,作为真正的计算场景执行器,是实际的计算逻辑执行单元
24 .Kyuubi Engine执行逻辑
25 .Kyuubi+ Linkis 的一站式架构 一站式平台入口 数据地图 数据开发 机器学习 计算中间件 计算引擎 任务调度 Hive Flink 资源编排 YARN Dolphin Scheduler 数据存储 OBS 数据接入 Kafka
26 .Kyuubi在一站式平台使用场景
27 .DSS集成Kyuubi DSS数据开发模块,直接对接Kyuubi服务,实现一站式开发和CI\CD
28 . 任务编排发布 任务编排集成kyuubi,可以直接拉去kyuubi组件编排任务流,关联编辑SQL脚本 kyuubi
29 .DS调度集成 任务编排完成的任务,发布对接到DS,DS以SQL模块执行脚本