1、冯斐/王非凡 美团数据平台工程师美团Flink大作业部署与状态稳定性优化实践相关背景#1大作业部署优化#2Checkpoint跨机房副本#3未来规划#5目录状态稳定性相关优化#42#1相关背景3美团Flink应用场景数据管道数据分析事件处理-数据实时入仓-跨数据源实时同步-实时数仓-实时特征生产-安全风控-系统监控告警4机器数美团Flink计算规模15K50K 5.4亿/秒 作业数5K高峰流量作业最大并发10TB作业最大状态5面临的问题与挑战大规模作业部署运行问题-JobManager部署Task过程耗时久,或出现RPC超时,导致作业启动失败-部分TaskManager上Task较多,导致Ta
2、sk启动失败-大作业制作Checkpoint给HDFS带来压力,影响其他作业稳定运行状态稳定性和效率问题-大状态作业在制作Savepoint期间,CPU和内存开销高,影响作业正常运行-基于Savepoint的恢复,需要回溯的数据多,作业恢复效率低、耗时长-高优先级作业的Checkpoint有机房级别的容灾需求6#2大作业部署优化7作业规模及典型问题-算子最大并发达到5K,-Task总数8K,2层shuffle,1个region-TaskManager数量1K+大作业的规模-JobManager部署大量Task过程耗时久,或者出现RPC超时,导致作业启动失败-部分TaskManager上Task
3、较多,申请不到足够的Network Buffer,导致作业启动失败-大作业制作Checkpoint给HDFS带来压力,其他使用HDFS的作业遇到Server too busy异常大作业的问题YARNHDFSSession ModeCheckpoint8JobManager部署作业流程分析构建执图申请资源部署Task启动Task 作业规模 作业拓扑复杂度 资源需求量 资源健康度 资源调度策略 资源调度性能 Task数量 TaskManager数量 作业拓扑复杂度 User Jar大小部署主要步骤部署影响因素当前规模下,问题集中在这两个步骤部署主要问题部署失败部署慢9分发User Jar问题分析现
4、象-指标:JobManager所在机器的网卡打满-日志:TaskManager下载User Jar耗时较多-测试:相同规模的作业缩小User Jar后,RPC超时异常消失,部署耗时减少HDFSBlobServerJobManagerBlobCacheTaskManagerTaskTaskJarBlobCacheTaskManagerTaskTaskJar由JM分发UserJar(关闭HA)由HDFS分发UserJar(开启HA)JM大量分发UserJar时,网络传输成为瓶颈每个TM都需要下载UserJar分析10分发User Jar问题优化HDFSBlobServerJobManagerBlo
5、bCacheTaskManagerTaskTaskJarBlobCacheTaskManagerTaskTaskJar每个TM都需要下载UserJarJM分发压力大,成为瓶颈HDFSBlobServerJobManagerBlobCacheTaskManagerTaskTaskJarBlobCacheTaskManagerTaskTask每个节点只下载1次UserJarJM分发压力减小,不再成为瓶颈每个节点上只下载1次User Jar,下载次数由TM粒度减小至机器粒度,降低了1个数量级11RPC超时问题分析与优化现象-有shuffle且并发度较大的作业仍然有updateTaskExecutio
6、nState等RPC超时的情况-JobManager侧存在大量requestPartitionState的RPC请求分析与优化上游Task(未启动)下游Task(已启动)1.requestPartitionsJobMaster2.requestPartitionState上游Task(未启动)下游Task(已启动)1.requestPartitions(with retry)JobMaster2.requestPartitionState下游Task先重试,减少请求JobMaster次数12优化效果-JobManager分发UserJar压力降低,作业部署耗时大幅减小,作业规模越大效果越明显-