实时数据:根据自身的容忍性来定义实时,并没有一个准确的时间来形容这个概念。
Sparkstream与storm的区别
storm实时流计算框架是一条一条数据处理,sparkstream准实时流式框架,微批处理,延迟比storm高;两者都支持动态调整资源;sparkstream支持复杂的业务逻辑,storm相对来说逻辑简单一些(相对来说)。
SparkStream数据处理流程图
SparkStream的receiver task会7*24小时一直运行,将接收到的数据保存起来。每隔batchInterval的时间将数据封装费一个RDD,继而封装为RDD,最后变成一个DStream。
这其中还有一个问题,就是处理数据的时间比接受数据的时间长的话,那么就会随着时间的推移数据堆积越来越严重,最后总就会造成OOM。这个可以设置内存满了的话就保存在disk中。
* 1、local的模拟线程数必须大于等于2 因为一条线程被receiver(接受数据的线程)占用,另外一个线程是job执行
* 2、Durations时间的设置,就是我们能接受的延迟度,这个我们需要根据集群的资源情况以及监控每一个job的执行时间来调节出最佳时间。
* 3、 创建JavaStreamingContext有两种方式 (sparkconf、sparkcontext)