1. 计算模式:
批处理模型:
--一次处理全部数据(MapReduce、Spark)
--数据量太大存不下全部数据、数据到来太快来不及批处理
流计算模型:
--数据不断以增量的方式流入系统并处理,改变系统状态并输出结果
--不需要对全部数据进行处理
2. 流计算
目标:实时性、可扩展性、容错、可编程性
一种实现:Worker + Queue
Worker:处理单元
Queue:缓冲(均衡) + 路由(分配)
--不易扩展、难容错、编码复杂
实例1:S4
--简单的流计算编程接口
--有限容错(非协调式检查点)
--实现了Actor模型
--PE:由PE的代码和配置文件定义
实例2:Storm
数据类型:Tuple
基本概念:stream、spout、bolt、topology
容错:消息的完整处理
对比:
编程模型:
--S4更简单
推、拉:
--S4推,如果缓冲区不够消息就会丢失
--Storm拉,丢失数据来自最初的数据输入
容错:
--S4不管消息丢失
--Storm保证消息被处理至少一次