1、Flink 在数据分析中的应用 肖 强 TalkingData 架构师 TalkingData流处理的背景与痛点 Flink在TalkingData SaaS分析中的演进路线 Flink实践中的重点问题解决方案 总结与展望 Agenda TalkingData SaaS的流处理服务演进: 1. TalkingData流处理的背景与痛点 Before 2014201420162017now Jetty 服务 不易扩展与维护 性能问题 自研etl-framework 无法完整表达DAG 容错机制不足 性能问题 新的流处理系统 满足更大的业务量 满足更复杂的业务场景 Flink是什么 1. Talk
2、ingData流处理的背景与痛点 技术选型 1. TalkingData流处理的背景与痛点 注:对比为16年的特性FlinkHeron 性能优于storm,基于流优于storm,基于流 语义exactly-once/at-least-onceat-least-once 自主内存管理是否 Operator支持较丰富较丰富 SQL支持是否 Batch支持Batch只是stream的特例否 监控不完善较完善 使用者阿里, 华为Twitter 2.1 standalone cluster 2. Flink在TalkingData SaaS分析中的演进路线 2.1 standalone cluster
3、2. Flink在TalkingData SaaS分析中的演进路线 分布式数据收集服务: td-collector 分布式消息队列: Kafka 流式引擎: Flink 流式服务:etl-service 存储: HDFS/Cassandra/Elasticsearch OLAP engine:Druid 2.1 standalone cluster 2. Flink在TalkingData SaaS分析中的演进路线 时间点数据量问题部署规模 2017.4 2017.6 Game: 12亿 SDK packages/day, Game: 峰值 1.8w SDK packages/s 无单集群,4
4、8 cores 2017.7 2017.8 Game: 18亿 SDK packages/day, Game: 峰值 3w SDK packages/s Job deployed不均匀,导致消费不均匀单集群, 120cores 2017.9 2017.12 Game: 16亿SDK packages/day, Game: 峰值2.7w SDK package/s, App: 19亿 SDK packages/day, App: 峰值2.5w SDK packages/s 随着Job部署增多,相互干扰抢占资源; 阻塞在requestBufferBlocking,导致整个 Job假死 单集群,26
5、4cores 2018.1 2018.12 Game: 16亿 SDK packages/day, Game: 峰值2.8w SDK package/s, App: 28亿 SDK packages/day, App: 峰值 4.6w SDK packages/day, Other-jobs: 20w events/s 资源分配不均,job相互干扰拆分成2个集群,456cores 2.2 flink on yarn 2. Flink在TalkingData SaaS分析中的演进路线 job执行计划构建/提交/web ui 多租户分发/调度 监控 Flink on yarn cluster 批处
6、理队列 App Batch Yarn 1 ADT Batch Yarn 1 Game Batch Yarn 1 混合队列 Hybrid Yarn 1 流式队列 App Stream Yarn 1 App Stream Yarn 2 Game Stream Yarn 1 ADT Stream Yarn 1 ADT Stream Yarn 2 HDFS YARN Resource Manager 2.2 flink on yarn 2. Flink在TalkingData SaaS分析中的演进路线 3. Allocate AppMaster Container YARN ContainerYARN