当前位置:首页 > 报告详情

陶然-蚂蚁实时计算 Flink on OceanBase.pdf

上传人: 云闲 编号:101861 2021-01-01 34页 11.54MB

1、陶然/阿里巴巴高级开发工程师、Apache Spark&Flink Contributor周跃跃/蚂蚁集团 OceanBase 架构师蚂蚁实时计算 Flink on OceanBase#1#1蚂蚁实时计算生产实践蚂蚁实时计算生产实践#2 2#3#3蚂蚁蚂蚁 FlinkFlink OnOn OceanBaseOceanBaseOceanBaseOceanBase 社区版技术架构及核心特性社区版技术架构及核心特性蚂蚁实时计算生产实践1.Flink 热启动2.引擎无关通用 IO 的探索3.Flink云原生生产和实践*Notice:第三部分由另一位同学在分论坛分享蚂蚁实时计算规模数据同步145632实

2、时大屏在线学习ETL实时核对实时特征核心业务场景Flink 热启动1.修改一个参数要重启整个作业2.修改下执行计划也要重启3.重启作业是很重的操作,需要各类前置校验4.重启的方式是资源重复销毁然后重新申请和创建进程5.整个启动流程可能耗时在3-5分钟以上或更大(根据作业规模),用户体感很差背景和痛点:常规重启有没有更快速的方式(甚至秒级启动体验)?Flink 热启动热启动定位1.热启动完全替代常规暴力重启2.复用作业已经存在的资源3.复用作业的JobGraph并对其更新4.加速作业启动速度在保证状态兼容的前提下执行计划兼容和状态恢复宽兼容宽兼容紧兼容紧兼容1.指执行计划算子个数和点边关系一致2

3、.是热启动最最基本的兼容要求1.指在宽兼容基础上保持chainedGroups的一致目的:保证热启动的状态恢复,区分出针对vertex逻辑变更的情形,简单来说如果vertex没有变更,我们可以对vertex进行缩放,反之,需要完整的更新一次JobGraphFlink 热启动过程热启动触发JobMaster回填Graph并调度新的Graph客户端执行计划兼容检测updating request宽兼容紧兼容不兼容Exceptionrequest引擎层Graph回填和重新调度步骤1.新的JobGraph对旧的JobGraph部分资源和对象的直接复用(如checkpoint设置、savepoint设置

4、、没有变更的jar或者资源文件等)2.停止 checkpoint coordinator3.使用新的JobGraph生成新的ExecutionGraph并恢复状态(ExecutionGraph内部对象复用,如TaskManagerLocation信息等)4.挂起当前 ExecutionGraph(支持task cancel快速失败)5.使用新的ExecutionGraph恢复jobRuntime 支持和改造1.jobmaster 针对JobGraph和ExcutionGraph进行替换和复用2.更多rescale的hander支持1.热启动过程中cp的暂停和恢复checkpoint1.细粒度的

5、热启动,更大地复用taskmanager和podrecale vertex&configuration1.完整的热启动,兼容更多场景2.slotpool和rm层的slot和tm复用支持replace jobgraphjobmaster&rest handlersFlink 热启动效果秒级重启适用(99%speed up):-原地重启-仅修改参数-缩容(缩并发,task的规格不变)-扩容(扩容部分并发度,有空闲slot摆放)-上述修改的混合部分加速效果(50%-60%左右的speed up):-扩容(按倍数扩并发或扩的并发taskmanger无法摆放,复用部分pod,扩容部分pod)-扩缩部分t

6、ask资源(扩缩部分vertex的资源规格,复用部分pod,扩容部分pod)-分裂部分结点(复用部分pod,扩容部分pod)-合并部分结点(复用部分pod,扩容部分pod)上述修改的混合最坏场景(10%-20%左右的speed up):-扩缩全部task的资源,导致全部pod规格改变,无法复用-拓扑完全改变注:针对资源规格的限制实际上可以调整和设置,主要是集群资源的限制蚂蚁引擎无关通用 IO背景和痛点:1.输入输出各个引擎和应用独自开发,重复造轮子2.新的插件 bug 多,没有经历大规模生产作业的考验3.Jar 冲突问题多3.不够全面4.不够标准和规范Flink 插件体系*DataStream

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了蚂蚁集团在实时计算和数据库领域的技术实践与探索。关键点包括: 1. **Flink 热启动**:陶然分享了 Flink 热启动的技术细节,包括其对作业快速重启的贡献,如修改参数或执行计划时的秒级体验,以及热启动与常规重启的比较。 2. **OceanBase 社区版技术架构及核心特性**:文章详细阐述了 OceanBase 社区版的技术架构,包括多副本、对等节点、无需共享存储、分区级可用性、高可用性与强一致性、低成本、高兼容性、高扩展性等特点。 3. **引擎无关通用 IO**:周跃跃介绍了蚂蚁集团在引擎无关通用 IO 方面的探索,旨在解决输入输出各个引擎和应用独自开发的问题,提高新插件的稳定性和易用性。 4. **Flink 与 OceanBase 的结合**:文章展望了 Flink 在 OceanBase 上的应用场景,主要作为关系型的结果表使用,以及 join 的维表使用。同时,也提到了 OceanBase 插件体系的优势和贡献。 5. **OceanBase 的高可用性与扩展性**:OceanBase 的高可用性与扩展性是文章的重点,包括基于 Paxos 协议的多副本机制、在线水平扩容、自动负载均衡等特点。 6. **Flink On OceanBase 的未来展望**:最后,文章对 Flink On OceanBase 的未来进行了展望,包括支持状态不兼容时的作业干净重启、前置状态兼容分析、热启动的弹性资源规格复用、引擎无关插件体系的移植工作和稳定性等方面。
"Flink热启动如何实现秒级重启体验?" "如何构建蚂蚁引擎无关通用IO插件体系?" "OceanBase社区版技术架构有哪些核心特性?"
客服
商务合作
小程序
服务号
折叠