SparkStreaming是流式处理框架,是Spark API的扩展,支持可扩展、高吞吐量、容错的实时数据流处理,实时数据的来源可以是:Kafka(Kafka和SparkStreaming是黄金组合), Flume, Twitter, ZeroMQ或者TCP sockets,并且可以使用高级功能的复杂算子来处理流数据。例如:map,reduce,join,window 。最终,处理后的数据可以存放在文件系统,数据库等,方便实时展现
同样作为流式处理框架,SparkStreaming和Storm的区别在于:
- Storm是实时处理数据,SparkStreaming是微批处理数据,因此SparkStreaming的吞吐量要比Storm高
- Storm适合处理实时数据,SparkStreaming适合处理流数据。SparkStreaming的高吞吐量,使得其计算逻辑必然可以处理复杂业务
- Storm的事务更加完善(ack保障机制,数据有100条就直接处理100条),SparkStreaming可以管理事务(100条数据处理完50条,可以手动管理处理剩下的50条)
- Storm和SparkStreaming都支持动态资源调度,不过最好别开启(资源一旦释放掉,有可能就要不回来了)