Storm的计算模型:
针对每条记录的流式实时计算框架,是一种比较纯粹的实时计算框架,但是存在一个问题!Storm由于每来一条数据都会处理下,所以吞吐量并不高。
为什么吞吐量不高?
因为每条数据过来就直接处理,那么每条数据的处理都存在开销。也就是说,storm机器的很多计算资源都会消耗在大量的其他方面,比如数据的传输、校研,通信等等,所以吞吐量并不能说非常高!
Spark streaming流计算框架:
会把一个时间batch里面过来的数据都收集起来,然后再一次性,作为一个batch给Spark Streaming Application进行处理。
Spark streaming的计算模型是基于batch的,所以严格意义上来说,spark streaming不是纯碎的实时计算框架,更多的是一种准实时计算框架。
所以,Spark streaming的吞吐量,远远高于Storm,因为对每条数据处理的额外开销少了。对一个batch,才有数据传输、通信的开销。
Storm支持在分布式流式计算程序(Topology)在运行过程中,动态的调整并行度,从而动态提高并发处理能力,而spark Streaming是无法动态调整并行度的。
网友回复