SparkStreaming
简介
- SparkStreaming是流式处理框架,支持可扩展、高吞吐量、高容错的准实时数据流处理
- 实时流的来源:
- Kafka, Flume, Twitter, ZeroMQ或者TCPsockets
与Storm的区别
- Storm是纯实时的流式处理框架,SparkStreaming是准实时的处理框架(微批处理)。因为微批处理,SparkStreaming的吞吐量比Storm要高。
- Storm 的事务机制要比SparkStreaming的要完善。
- Storm支持动态资源调度。(spark1.2开始和之后也支持)
- SparkStreaming擅长复杂的业务处理,Storm不擅长复杂的业务处理,擅长简单的汇总型计算。
SparkStreaming结构
注意:
- receiver task是7*24小时一直在执行,一直接收数据
- 若数据的处理速度慢于batch间隔,则会导致并行的接收数据与任务处理,会产生一些问题
- 如果接收过来的数据设置的级别是仅内存,接收来的数据会越堆积越多,最后可能会导致OOM(如果设置StorageLevel包含disk,则内存存放不下的数据会溢写至disk, 加大延迟