思考题
- 流式计算与批量计算的区别
- 流式计算的关键要素
- 数据分发机制
- 图的切分方式
- BSP计算模式
- 图数据计算的并行思想
流式计算
- 数据流是一系列动态数据的集合体,例如网络数据包
- 数据流的特点
- 微观上有独立的组成单元,宏观上呈现流的特点
- 实时性
- 随时间不断到来,具有一定的次序
- 流处理的核心是一个管道或线路的拓扑结构设计
- 与批量计算相比
- 实时计算、延时较少
- 来一个处理一个
- 数据驱动的计算请求
- 推式获取计算结果,批量计算是拉式获取计算结果
- 主要挑战:处理速度要与数据到来速度匹配,保障数据的顺利流动,处理逻辑的表示
- 流式计算的分发策略
- 随机分发,发牌式分发
- 按特定值分发
- 广播分发(每个包会分发给所有的节点)
- 分发策略的设计原则
- 核心目的是为了解决节点处理压力问题
- 将单一节点的处理压力分散到多个节点上
- 关键是如何保证流经多个节点与流经一个节点的处理逻辑不变
流式计算技巧
图计算的挑战:存在高纬度的节点,无法单机处理,并行化的核心就是如何拆分图
- 切分方法
- 边切分:从点出发,寻找边和邻接点
- 点切分:从边出发,加入所有端点
- 图本身分割存储、计算过程分布式并行、迭代
- BSP模式,Bulk Synchronous Parallel整体同步并行,纵向上是一个串行模式,横向上是并行模式,纵向上,每一个superstep之后都设置barrier,用来同步
- 最短路径的Dijkstra算法,分布式计算的关键
- 0:白色,未被计算的节点,即未连通的节点,距离为MAX
- 1:灰色,计算过程中节点
- 2:黑色,已经完成最短路径计算的节点