1、邱从贤Apache Flink Committer/腾讯高级开发工程师大规模作业的稳定性优化实践平台介绍稳定性建设总结与展望#1#2#3#1平台介绍实时计算的应用从Business Intelligence走向Continuous Intelligence营销分析、指标提升运营监控、商业决策产品改进、体验升级以财付通为例,实时计算在微加卡实时营销、实时智能推荐、基金实时营销分析、实时自助分析等项目中扮演重要的作用,理财通实时活动和信用卡营销效果取得了巨大的提升实时计算的应用Yarn/K8SHDFSZooKeeperMQFlinkConfigurationOceanusTextDeploymen
2、tMonitoringMQOLAPOnlineServicesCanvasSQLJarOceanus 平台概况#2稳定性建设稳定性衡量要素减少故障空间上降低影响时间上降低影响功能测试稳定性保障方案测试演练故障演练混沌测试部署监控故障恢复SLA 评估资源隔离链路双活可用性监控延迟监控乱序监控实时对账负载均衡集群扩容链路切换灾备降级压力测试开发故障预防体验优化测试验证作业开发流程Jar 开发流程测试上线Jar 代码 开发作业开发流程SQL 开发流程调试上线SQL 代码 开发作业开发流程Canvas 开发流程调试上线Canvas 开发作业开发流程开发方式可能的问题解决方案JarJava 代码开发调试
3、困难API 太底层冲突较多使用 SQL/Canvas 模式 提前检测class 的冲突SQLSQL 代码表结构不明显(字段信息不明显)报错信息定位不方便优化报错信息提示提供 Debug 验证模式使用 Canvas 模式Canvas图形化语义不对齐完善语义故障演练故障类型故障影响如何恢复serverserver 故障/db 故障影响作业启停不影响作业运行重启 server 或者 dbYarnRM 故障无法启动等待 RM 恢复NM 故障NM 所在机器所有 container 作业重启Flink 自动恢复资源不足无法启动作业扩容HDFS服务不可用无法启动作业,运行中作业可能重启等待 HDFS 恢复D
4、N/NN 慢作业无法启动,运行中作业可能重启等待 HDFS 恢复容量满无法启动作业,无法完成checkpoint 无法自动 failover扩容Zookeeper服务不可用服务不稳定导致 leader 切换无法启动作业,运行中作业可能failover 无法正常恢复等待 Zookeeper 恢复或者切换zookeeper 集群Flink 运行异常Flink/用户逻辑异常作业 failoverFlink 自动恢复压力测试通过不断增加压力了解各系统的能力边界测试项测试项优化优化释义释义server不同 QPS 请求下,server 的请求成功率以及操作时延水平扩容掌握 server 的整体 SLA
5、以及扩容时机Yarn不同 application/container 规模下,集群的响应速度资源隔离降低硬件故障的影响掌握不同规模集群能支撑的作业数HDFS给定集群规模下,能支持的 checkpoint 大小以及频率小文件合并掌握集群能支撑的 checkpoint 大小以及频率Zookeeper给定集群能支撑的作业数/TaskManager 数 降低 TM 对 Zookeeper 的连接依赖(TaskExecutor 启动或者 HeartbeatTimeout 后重新连接 zookeeper)掌握集群能支撑的作业数/TaskManager 数部署阶段评估作业的接入,将可能的影响降到最低评估指标
6、评估指标处理措施处理措施server接入后能否满足 SLA 要求水平扩容Yarn接入后集群能否支撑 application/container 的需求 集群扩容接入新集群HDFS接入后集群能否支撑 checkpoint 的读写集群扩容接入新集群Zookeeper接入后集群能否支撑连接数/znode 数Zookeeper 扩容/隔离作业运行情况masteryarnzookeeperHDFSTask-1Task-2Task-3Task-4心跳心跳心跳心跳barrierwatermarkmaster/worker 的稳定性masterzookeeperworker-2worker-1可能的问题 与Z