禹晓辉 - 分布式流处理技术

终云岚

2018/05/13 发布于 技术 分类

作为第三位出场的演讲嘉宾,山东大学计算机学院副院长禹晓辉教授带来了他在流数据处理方面的前沿成果,主题为《分布式流处理技术》的演讲引用了很多案例,比如流数据处理技术在交通监控、犯罪嫌疑人排查等方面的有效应用,精彩的阐述了技术革新带来的应用便利。 禹晓辉表示,为应对海量高速数据处理需求,分布式流处理模式应运而生。传统的数据库方式并不适合对于这种数据形式的处理,Hadoop是基于批处理,实施相应的模式也不适合。分布式流处理是一种非常好的方式来应对这种数据形式。

文字内容
1. 分布式流处理技术 禹晓辉 山东大学计算机科学与技术学院
2. 流处理 数据源 算子 算子 算子 算子
3. 内容 • 大数据处理模式 • 流处理技术发展 • 分布式流处理系统剖析 • 分布式流处理应用实例
4. 大数据处理模式 数据状态 动态数据 静态数据 Storm Spark Streaming 基于内存 细粒度 粗粒度 基于磁盘 处理粒度
5. 内容 • 大数据处理模式 • 流处理技术发展 • 分布式流处理系统剖析 • 分布式流处理应用实例
6. 流处理技术发展 数据流管理系统 分布式化 Aurora Medusa 实时数据库 STREAM Flux 主动数据库 TelegraphCQ Borealis 信息过滤系统 StreamBase …… …… 20世纪末 21世纪初 分布式流处理系统 S4 Storm Samza …… 2010年至今 时间
7. 内容 • 大数据处理模式 • 流处理技术发展 • 分布式流处理系统剖析 • 分布式流处理应用实例
8. 分布式流处理系统剖析 语义保障 负载控制 系统容错 存储管理 数据模型 系统架构
9. 分布式流处理系统剖析–数据模型 处 理 单 元 连续不断的序列
10. 分布式流处理系统剖析–数据模型 批次模型 减少传输成本 降低容错难度 增加处理延迟 批次 (batch) 连续不断的序列 对象实例 (object) 元组 (tuple) 记录 (record) 处 理 单 元
11. 分布式流处理系统剖析–系统架构 调度程序 A B C 节点 守护进程 守护进程 A1 B1 C2 节点1 中心节点/ 协调器 节点2 守护进程 守护进程 B2 节点3 C2 节点4
12. 分布式流处理系统剖析–系统架构 P2P 节点1 节点2 节点3 节点4 中心化 节点1 节点2 中心 节点 节点3 节点4 弱中心化 节点1 节点2 协调 器 节点3 节点4 中心 节点
13. 分布式流处理系统剖析–存储管理 “一过性” + 0故障概率 = 可靠保障 存储支持 “可重复性” + ε故障概率 = 可靠保障
14. 分布式流处理系统剖析–存储管理
15. 分布式流处理系统设计–存储管理 数据 说明 处理方式 可能改进 元数据 节点状态、任务信息、负载情况…… 原始数据 系统接入的数据,如:句子 ZooKeeper 上游组件 (消息队列) null 集成可靠存储 衍生数据 计算产生的中间或最终结果,如:句 子中某词出现的频数 内存(最终结果可 能写外部数据库) 持久化接口 (共享存储)
16. 分布式流处理系统剖析–语义保障 语义 至多一次 至少一次 精确一次 应用场景 粗略log分析、温度报警 一切幂等操作 数目敏感应用、金融相关 实现方式 不重发 原始数据可重复 基于至少一次,记录log
17. 分布式流处理系统剖析–语义保障 1、输出结果 2、记log 3、通知上游不要重发 处 ID=100 理 单 元 ID冲突 写失败 ID 结果 …… 100 1234 …… 数据库
18. 分布式流处理系统剖析–负载控制 静态 (算子分配) A1 负载均衡 手动 动态 (算子分配 数据路由) 自适应 节点1 算子分配、数据路由算法 B2 节点3 B1 C2 节点2 C2 节点4
19. 分布式流处理系统剖析–系统容错 恢复级别 精确恢复 回滚恢复 精有确损一恢次复 至多一次 是 可能 可能 至少一次 是 可能 否 精确一次 是 可能 否
20. 分布式流处理系统剖析–系统容错 冗余 快速 恢复 检查点 主动备用 节省 低延 资源 上游备份 迟
21. 分布式流处理系统剖析–系统容错 算子1 状态1 算子2 状态2 算子3 状态3 节点1 节点2
22. 分布式流处理系统剖析–系统容错 全局存储 算子1 状态1 算子2 状态2 算子3 状态3 节点1 分布式队列 节点2
23. 分布式流处理系统剖析–其他问题 • 高可用性(HA) – 高延迟 – 过度频繁负载调度 – 语义保障失误造成崩溃 – 故障恢复时间过长 • 语言 – 硬编码  Query/Manipulation Language – RDD Transformation
24. 内容 • 大数据处理模式 • 流处理技术发展 • 分布式流处理系统剖析 • 分布式流处理应用实例
25. 分布式流处理应用实例 • 针对“海量”、“高速”数据进行较复杂处理,低延迟 – 分布式时空K近邻搜索 – 频繁伴随模式发现 – 实时微博搜索 – 流处理+批处理:TariDB
26. 分布式时空K近邻搜索 • 问题 – 海量的时空数据和大规模的并发搜索 • 难点 – 集中式的K近邻搜索算法难以应对时空大数据
27. 分布式时空K近邻搜索 基于主从分布式模型,通过建立分布式的动态Strip索引结构(DSI), 实现对海量数据的分布式实时索引;设计分布式搜索算法(DKNN), 通过最多两次迭代计算,得到准确的K近邻搜索结果。 Z. Yu, X. Yu, Y. Liu, K. Q. Pu. Scalable Distributed Processing of K Nearest Neighbor Queries over Moving Objects. In TKDE, 2014.
28. 频繁伴随模式发现 • 问题: – 一组对象较短时间内在某个数据流连续出现 – 该组对象之后一段时间内在多个数据流上以同样的方式 出现 – 实时发现多个数据流所有的频繁伴随模式 • 难点: – 涉及多个流数据复杂关系的比较分析 – 流数据快速到达且连续变化,需要 实时返回结果
29. 频繁伴随模式发现 将流数据划分成Segment,将问题进行简化。 建立索引Seg-tree高效索引segment,并支持频繁伴随模式发现 b ae fd c Z. Yu, X. Yu, Y. Liu, W. Li, and J. Pei. Mining Frequent Co-occurrence Patterns across Multiple Data Streams. In EDBT 2015.
30. 实时微博搜索 • 问题 – 微博发布后,应立即可搜 – 支持各种结果排序策略 • 难点 – 微博数据呈现海量高速的特点 • Twitter峰值25000条/秒 (2011年) – 基于内存的高可用
31. 实时微博搜索 基于S4构建分布式微博搜索系统 1.通过同步冗余节点的方式实现热备 2.利用全局存储解决信息共享问题 L. Lin, X. Yu, N. Koudas. Pollux: Towards Scalable Distributed Realtime Search on Microblogs. In EDBT 2013.
32. 流处理+批处理:TariDB
33. 流处理+批处理:TariDB 捕获识别 网络传输 基于TariDB的处理平台
34. 流处理+批处理:TariDB Reserved Data Flow Kafka Distribution & Storage Layer HDFS & HBase Coordinator (Zookeeper & Libra) Real-time (S4) Batch (Taurus & Hadoop) RabbitMQ Web Server
35. 流处理+批处理:TariDB
36. 流处理+批处理:TariDB
37. 总结 • 大数据处理模式 – 基于内存面向动态数据的细粒度处理 • 流处理技术发展 – 报警  数据流管理系统  分布式 • 分布式流处理系统剖析 – 数据模型 – 源源不断的单条或批量数据 – 系统架构 – 去中心化、中心化、弱中心化结构 – 存储管理 – 抛弃存储  集成可靠存储 – 语义保障 – 至少一次,精确一次 – 负载控制 – 静态、(非)自适应动态负载均衡 – 系统容错 – 额外开销、恢复速度、节约资源 • 分布式流处理应用实例 – 海量、高速、复杂、低延迟
38. 分布式流处理技术