其他
腾讯基于 Flink 的实时流计算平台演进之路
腾讯实时计算团队为业务部门提供高效、稳定和易用的实时数据服务。其每秒接入的数据峰值达到了 2.1 亿条,每天接入的数据量达到了 17 万亿条,每天的数据增长量达到了 3PB,每天需要进行的实时计算量达到了 20 万亿次。腾讯选择用 Flink 作为新一代的实时流计算引擎,并对社区版的 Flink 进行了深度的优化,在此之上构建了一个集开发、测试、部署和运维于一体的一站式可视化实时计算平台—— Oceanus 。本文整理自腾讯大数据高级工程师杨华在 QCon 全球软件开发大会(北京站)2019 上的演讲,他介绍了腾讯流计算技术的演进过程,产品化及云端对外服务进展。
Flink 在腾讯实时计算概况简介
Oceanus 平台简介
针对 Flink 的扩展与优化
取消 JobManager 跟 TaskManager 因为心跳超时或 Leadership 变动就 cancel task 的行为;
对 ExecutionGraph 核心数据的快照;
通过 ExecutionGraphBuilder 重构空的 ExecutionGraph 加上快照重置来恢复出一个跟原先等价的 ExecutionGraph 对象;
TaskManager 跟新的 JobManager leader 建立连接后以心跳上报自己的状态和必要的信息;
新的 JobManager 确认在 reconcile 阶段 Job 的所有 task 是否正常运行;
Coordinator 并不能控制 Job 是否容忍检查点失败,因为控制权在 task 端;
Coordinator 当前的失败处理代码逻辑混乱,区分出了触发阶段,却忽略了执行阶段;
无法实现容忍多少个连续的检查点失败则让 Job 失败的逻辑。