1、sparkStream官网
http://spark.apache.org/streaming/
2、什么是sparksreaming?
sparkStreamin是一种构建在spark之上的实时计算框架,他扩展了spark处理打过莫流失数据的能力,吞吐量高,容错能力强。(对标hadoop中storm)
3、处理数据方式
sparkStreaming将输入的数据按照时间为单位进行切片,切除一个个的批,称之为DStream。DStream本质依然为RDD。所以对DStream的处理最终会被翻译成对底层RDD的处理。
sparkStreaming对spark串行处理,严格保证顺序,当上一个DStream在当前算子未处理完成时,下一个Dstream会被阻塞(也就是等着),所以SparkStream应该合理分配切片时间和每个算子的复杂程度,尽力让每个算子都可以在切片时间内将数据梳理完。这样可以减少数据可能的堆积以及算子限制的可能,实现最优的并发。
sparkStreaming的并发,体现在DStream对应的RDD本身的并发上,而放弃了批之间的并发,这样虽然会造成一定的延时性,但在可靠性、并发控制、程序开发复杂度降低都带来了好处。
优化点:合理设置切片时间
4、容错性
SparkStreaming在读取流数据进入内存时,会保存两个副本,计算只用一个。当出现问题的时候,快速切换到另一个副本。在规定的时间年内进行数据的固化。
由于支持RDD操作,所以本身的容错处理机制也会被继承。
5、sparkStreaming与storm对比
时延:
storm可实现毫秒时延的处理,而每次只处理一条event。
spark是秒级别,因为spark是在一个短暂的时间窗口处理多条event,本质是RDD的批处理。
数据吞吐
sparkStreaming中100个节点(每节点4个core),数秒延迟可处理6GB/s的shujuliang 。吞吐量是storm的2~5倍。
所以,spark的优点在于高吞吐、可靠性,以及编程的简易性。