当前位置: 移动技术网 > IT编程>软件设计>架构 > 大数据Spark与Storm技术选型

大数据Spark与Storm技术选型

2018年09月10日  | 移动技术网IT编程  | 我要评论

先做一个对比:

 

对比点

storm

spark streaming

实时计算模型

纯实时,来一条数据,处理一条数据

准实时,对一个时间段内的数据收集起来,作为一个rdd,再处理

实时计算延迟度

毫秒级

秒级

吞吐量

事务机制

支持完善

支持,但不够完善

健壮性 / 容错性

zookeeper,acker,非常强

checkpoint,wal,一般

动态调整并行度

支持

不支持

 

再来说说spark streaming与storm的应用场景

 

先说一下storm:


1、建议在那种需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析
2、此外,如果对于实时计算的功能中,要求可靠的事务机制和可靠性机制,即数据的处理完全精准,一条也不能多,一条也不能少,也可以考虑使用storm
3、如果还需要针对高峰低峰时间段,动态调整实时计算程序的并行度,以最大限度利用集群资源(通常是在小型公司,集群资源紧张的情况),也可以考虑用storm
4、如果一个大数据应用系统,它就是纯粹的实时计算,不需要在中间执行sql交互式查询、复杂的transformation算子等,那么用storm是比较好的选择

spark 呢:


1、如果对上述适用于storm的三点,一条都不满足的实时场景,即,不要求纯实时,不要求强大可靠的事务机制,不要求动态调整并行度,那么可以考虑使用spark streaming
2、考虑使用spark streaming最主要的一个因素,应该是针对整个项目进行宏观的考虑,即,如果一个项目除了实时计算之外,还包括了离线批处理、交互式查询等业务功能,而且实时计算中,可能还会牵扯到高延迟批处理、交互式查询等功能,那么就应该首选spark生态,用spark core开发离线批处理,用spark sql开发交互式查询,用spark streaming开发实时计算,三者可以无缝整合,给系统提供非常高的可扩展性

 

 spark streaming与storm的优劣分析

 

事实上,spark streaming绝对谈不上比storm优秀。这两个框架在实时计算领域中,都很优秀,只是擅长的细分场景并不相同。

spark streaming仅仅在吞吐量上比storm要优秀,而吞吐量这一点,也是历来挺spark streaming,贬storm的人着重强调的。但是问题是,是不是在所有的实时计算场景下,都那么注重吞吐量?不尽然。因此,通过吞吐量说spark streaming强于storm,不靠谱。

事实上,storm在实时延迟度上,比spark streaming就好多了,前者是纯实时,后者是准实时。而且,storm的事务机制、健壮性 / 容错性、动态调整并行度等特性,都要比spark streaming更加优秀。

spark streaming,有一点是storm绝对比不上的,就是:它位于spark生态技术栈中,因此spark streaming可以和spark core、spark sql无缝整合,也就意味着,我们可以对实时处理出来的中间数据,立即在程序中无缝进行延迟批处理、交互式查询等操作。这个特点大大增强了spark streaming的优势和功能。

推荐阅读:

微信公众号:

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网