MapReduce 适合离线批处理
实时流处理产生背景:
- 时效性高
- 数据量大
实时计算与流计算对比:
- 实时计算:延迟性低
- 流式计算:不断产生的数据流上计算
==综合==>实时流式计算
离线计算与实时计算的对比:
1) 数据来源
离线:HDFS 历史数据,数据量比较大
实时:消息队列(Kafka),实时新增/修改记录过来的某一笔数据
2) 处理过程
离线:MapReduce
实时:Spark(DSream / SS)
3) 处理速度
离线:慢
实时:快速
实时流计算框架:
- Storm (真的实时)
- Apache Spark Streaming(Spark的pai进行扩展,把数据流按照时间间隔拆成小的批处理)
- IBM Stream
- Yahoo! S4
- LinkedIn Kafka
- Flink(可以流式,可以批处理)
kafka的作用:Flume如果直接添加给Spark,在高峰期压力会很大,因此使用Kafka对高峰日志进行消除峰值。