Storm VS Spark,谁是你的最佳实时大数据处理器?

我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

实时大数据处理已经逐步迈入主流,而Storm与Spark项目的支持无疑在其中起到了显著的推动作用。那么问题来了:实时大数据处理到底该选谁?

storm vs spark
目前在开源市场上已经有了多款实时大数据的处理工具,最值得关注的还属Storm与Spark。这两套方案都归属于Apache基金会,都能为用户提供良好的实时处理能力。两款工具在功能方面有一部分交集,但也各自拥有着不同的特性与市场定位。

Storm : 实时流处理

storm
Storm是一款极具可扩展能力和容错能力的开源分布计算系统,高度专注于流处理领域。在设计思路中充分考虑到大规模可扩展能力,利用“故障快速、自动重启”方案为处理提供容错性支持。

Storm在事件处理与增量计算方面表现尤为突出,能够以实时方式根据不断变化的参数对数据流进行处理。它可以同时提供原语以实现通用性分布RPC,在理论上也能够被用于任何分布式计算任务,但其最为根本的优势仍然表现在事件流处理方面。

Spark:通用分步式计算平台

spark
Spark是一套快速出色、可扩展能力惊人且极具灵活性的开源分布式计算平台,与Hadoop以及Mesos相兼容并且支持多川计算模式,其中包括流、以图为核心的操作、SQL访问外加分布式机器学习等。

该项目最大的亮点在于其支持多处理模式以及支持库。Spark的实际扩展记录令人满意,而且与Storm一样堪称构建实时分析与大数据处理系统的卓越平台。另外,它拥有能够与存储在多种不同数据源内的数据实现协作的适配器–包括HDFS文件、Cassandra、HBase以及S3。

终极PK,如何做选择?

看需求!

选择之前,弄清楚你的主要需求。可以对两套平台进行一番详尽分析,利用这两套平台各自建立一个小规模概念验证项目,而后运行自己的基准工作负载,借此在最终选择前亲身体验二者的工作负载处理能力是否与预期相一致。

如果你的需求主要集中在流处理与复杂事件的处理层面,而且需要从零开始为项目构建一套目标明确的集群设施,那么建议选择Storm,特别是在现有Storm流机制能够确切满足集成需求的情况下。这一结论并不属于硬性要求或者强制规则,但上述因素的存在确实更适合由Storm出面打理。

hodoop
如果你打算使用现有Hadoop或者Mesos集群,而且/或者既定流程需要涉及与图形处理、SQL访问或者批量处理相关的其它实质性要求,那么Spark则值得加以优先考虑。

当然,这二者也是能共存的。根据各位工作负载、基础设施以及具体要求的不同,大家可能还会找出一种将Storm与Spark加以结合的理想方案。其它同样可能发挥作用的工具还包括Kafka、Hadoop以及Flume等等,而这正是开源机制的最大亮点所在。

无论选择哪一套方案,这些工具的存在都切实表明,实时大数据处理市场的游戏规则已经发生了变化。曾经只能为少数精英所掌握的强大选项如今已经进入寻常百姓家,或者说,至少适用于多数中等规模或者大型企业。不要浪费资源,充分享受由此带来的便利吧。

End.

随意打赏

提交建议
微信扫一扫,分享给好友吧。