1、Spark Streaming是什么?
Spark Streaming类似于Apache Storm,用于流式数据的处理。
Spark Streaming有高吞吐量和容错能力强等特点。且支持的数据源有很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。
数据输入后可以用Spark的高度抽象操作如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。另外Spark Streaming也能和MLlib(机器学习)以及Graphx完美融合。
官方地址:http://spark.apache.org/streaming/
2、Spark Streaming特点
易用
可以像编写离线批处理一样去编写流式程序,支持java/scala/python语言。
容错
SparkStreaming在没有额外代码和配置的情况下可以恢复丢失的工作。
它的容错性依赖于底层的rdd的容错机制。
易整合
Spark Streaming 易整合到Spark体系。它可以将流式处理与批处理和交互式查询相结合。
3、SparkStreaming与Storm的对比
开发语言不同:spark Streaming的开发语言是Scala,Storm 的开发语言是Clojure.
编程模型不同:Spark Streaming的编程模型是Dstream,Storm的编程模型是Spout/Bolt
实时性不同:Spark Streaming是某一时间间隔的流式批量处理。实时性没有storm高,准实时处理。Storm是来一条数据处理一条,实时性比较高。