Storm VS Spark,谁是你的最佳实时大数据处理器?
实时大数据处理已经逐步迈入主流,而Storm与Spark项目的支持无疑在其中起到了显著的推动作用。那么问题来了:实时大数据处理到底该选谁?
Storm : 实时流处理
Storm在事件处理与增量计算方面表现尤为突出,能够以实时方式根据不断变化的参数对数据流进行处理。它可以同时提供原语以实现通用性分布RPC,在理论上也能够被用于任何分布式计算任务,但其最为根本的优势仍然表现在事件流处理方面。
Spark:通用分步式计算平台
该项目最大的亮点在于其支持多处理模式以及支持库。Spark的实际扩展记录令人满意,而且与Storm一样堪称构建实时分析与大数据处理系统的卓越平台。另外,它拥有能够与存储在多种不同数据源内的数据实现协作的适配器–包括HDFS文件、Cassandra、HBase以及S3。
终极PK,如何做选择?
看需求!
选择之前,弄清楚你的主要需求。可以对两套平台进行一番详尽分析,利用这两套平台各自建立一个小规模概念验证项目,而后运行自己的基准工作负载,借此在最终选择前亲身体验二者的工作负载处理能力是否与预期相一致。
如果你的需求主要集中在流处理与复杂事件的处理层面,而且需要从零开始为项目构建一套目标明确的集群设施,那么建议选择Storm,特别是在现有Storm流机制能够确切满足集成需求的情况下。这一结论并不属于硬性要求或者强制规则,但上述因素的存在确实更适合由Storm出面打理。
当然,这二者也是能共存的。根据各位工作负载、基础设施以及具体要求的不同,大家可能还会找出一种将Storm与Spark加以结合的理想方案。其它同样可能发挥作用的工具还包括Kafka、Hadoop以及Flume等等,而这正是开源机制的最大亮点所在。
无论选择哪一套方案,这些工具的存在都切实表明,实时大数据处理市场的游戏规则已经发生了变化。曾经只能为少数精英所掌握的强大选项如今已经进入寻常百姓家,或者说,至少适用于多数中等规模或者大型企业。不要浪费资源,充分享受由此带来的便利吧。
End.