SparkStreaming和Strom都属于实时计算框架,有点都是可以做到对数据的实时处理。SparkStreaming是基于Spark Core实现的,所以对数据的处理要形成RDD,暨要形成数据窗口,所以其处理过程可以称之为微批处理,而storm是可以做到实时处理每一条数据的,所以相对来说,实时性比sparkstreaming更高。所以storm更适合处理实时性要求极高的场景。
收起SPark体系中的 Spark Streaming严格意义上属于批处理计算框架,准实时,基于内存的计算框架,性能可以达到秒级,大数据除了实时计算之外,还包括了离线批处理、交互式查询等业务功能,而且实时计算中,可能还会牵扯到高延迟批处理、交互式查询等功能,就应该首选Spark生态,用Spark Core开发离线批处理,用Spark SQL开发交互式查询,用Spark Streaming开发实时计算,三者可以无缝整合,给系统提供非常高的可扩展性
Storm是纯实时计算框架,来一条数据,处理一条数据,可以达到毫秒级,适合于要求可靠的事务机制和可靠性机制,即数据的处理完全精准,一条也不能多,一条也不能少,也可以考虑使用Storm
形象点比喻,SPark就好比商城的直梯,Storm就好比商场的扶梯