storm vs sparkUpdate: additional question about Storm
The question is to compare Spark to Storm (see comments below).
Spark is still based on the idea that, when the existing data volume is huge, it is cheaper to move the process to the data, rather than moving the data to the process. Each node stores (or caches) its dataset, and jobs are submitted to the nodes. So the process moves to the data. It is very similar to Hadoop map/reduce, except memory storage is aggressively used to avoid I/Os which makes it efficient for iterative algorithms (when the output of the previous step is the input of the next step). Shark is only a query engine built on top of Spark (supporting ad-hoc analytical queries).
You can see Storm as the complete architectural opposite of Spark. Storm is a distributed streaming engine. Each node implements a basic process, and data items flow in/out a network of interconnected nodes (contrary to Spark). With Storm, the data move to the process.
Both frameworks are used to parallelize computations of massive amount of data.
However, Storm is good at dynamically processing numerous generated/collected small data items (such as calculating some aggregation function or analytics in real time on a Twitter stream).
Spark applies on a corpus of existing data (like Hadoop) which has been imported into the Spark cluster, provides fast scanning capabilities due to in-memory management, and minimizes the global number of I/Os for iterative algorithms.
Spark Streaming module is comparable to Storm (both are streaming engines). They work differently though. Spark Streaming accumulates batches of data, and then submit these batches to the Spark engine as if they were immutable Spark datasets. Storm processes and dispatch items as soon as they are received. I don't know which one is the most efficient in term of throughput. In term of latency, it is probably Storm. –
Here is my 2 cents: Spark streaming has concept of sliding window while in Storm you have to maintain the window by yourself
**************************************
>>理解: move the process to the data和move the data to the process的不同
>>>Spark与Hadoop MapReduce非常相似,不同之处是Spark采用内存缓存数据集提高性能,并且使迭代算法更高效(上一步的输出作为下一步的输入)。
==>Spark的RDD计算模型
>>>Shark仅仅是一个构建在Spark之上的查询引擎,支持特定的分析查询。
>>>Spark仍然是基于这样一种思想,假定已有的数据量巨大,并且处理找数据更便宜些,而不是让数据找处理。
>>>Spark是处理找数据,而Storm是数据流向(找)处理
>>>Spark可以理解为,处理找数据,即数据等着被处理,而storm是数据主动找处理
>>>Storm是和Spark完全对立的架构,Storm是一个分布式流处理引擎,每一个节点实现基本处理,数据项在互联节点间流入、流出。所以,对Storm来说,是数据找处理。
>>>Spark和Storm都可以用于大规模数据量的并行计算。
>>>然而,Storm擅长于动态处理许多(大量)产生或者收集的小数据项(比如:Twitter中计算某些聚合功能或者实时分析)
==>Storm用于对大量变化数据的实时分析
>>>Spark像Hadoop一样,应用于已有数据这个范畴,这些数据导入到Spark集群中。
>>>Spark提供快速扫描能力,是因为基于内存管理,对迭代算法来说,使得整体IO数量最小化。
>>>Spark流处理模型可以和Storm进行比较(两者都是流处理引擎)。但是它们工作起来是不同的,Spark流模型积攒成批的数据,然后把这些成批数据提交给Spark引擎,
对Spark引擎来说,可以看做是不变的Spark数据集。
>>>而Storm的工作方式是:只要数据被storm节点接收到,就会尽可能快的被处理和分发出去。
>>>在吞吐量方面,我不知道哪一个更高效,但是就延迟来说,可能是Storm延迟低。
==>性能指标,高吞吐、低延迟
>>>Spark coded in Scala,Storm coded in Clojure
>>>Spark流模型有滑窗的概念,而在Storm中,你必须自己维护滑窗。
分享到:
相关推荐
本资源"实时大数据分析基于Storm、Spark技术的实时应用.zip"是一个聚焦于这一领域的专业书籍,出版于2018年,确保了其中的技术信息相对新颖,能够涵盖当前实时大数据处理的主流技术和最佳实践。 Storm和Spark是两个...
### Storm与Spark简介 #### Storm框架详解 **Storm** 是一款强大的实时数据流处理系统,其设计目的是为了处理持续不断涌入的数据流,并将其处理后输出至数据库或其它系统。相较于 **Hadoop** 主要用于批处理,**...
Flink、Storm、Spark Streaming三种流框架的对比分析 Flink架构及特性分析 Flink是一个原生的流处理系统,提供高级的API。Flink也提供API来像Spark一样进行批处理,但两者处理的基础是完全不同的。Flink把批处理...
标题中的"storm和spark入门项目finalss"表明这是一个关于学习Apache Storm和Apache Spark的基础项目,旨在帮助初学者熟悉这两种大数据处理框架。Apache Storm是实时数据流处理系统,而Apache Spark则是用于批处理、...
根据提供的文件信息,我们可以从以下几个方面来探讨与Hadoop、Storm、HBase和Spark相关的知识点。 ### Hadoop #### 1. Hadoop简介 Hadoop是一个开源软件框架,用于分布式存储和处理大型数据集。它由Apache基金会...
Hadoop、Storm和Spark都是大数据处理框架,但各自有不同的特点和适用场景。下面将对这三个框架进行详细的区别对比。 Hadoop的核心是HDFS(Hadoop Distributed File System)和MapReduce计算模型。HDFS用于存储大量...
随着业务需求的不断升级,实时数据分析的重要性日益凸显,因此出现了如Storm和Spark这样的Hadoop替代技术,它们专注于提供更快、更灵活的数据处理能力,尤其适合实时流式计算。 Storm是Twitter开源的分布式实时计算...
标题中的"storm和spark入门项目final"表明这是一个关于学习Apache Storm和Apache Spark的基础项目,旨在帮助初学者理解和掌握这两种大数据处理框架。Apache Storm是一个实时计算系统,常用于处理连续的数据流,而...
流处理系统如Apache Spark Streaming和Apache Storm,都致力于提供高吞吐量、低延迟的数据处理能力。尽管它们的目的是类似的,但各自的设计哲学、运行模型、容错机制等方面存在着显著差异。以下将详细介绍Spark ...
藏经阁-Lego-Like Building Blocks of Storm and Spark Streaming Pipelines 在本文中,我们将探讨如何使用 Storm 和 Spark Streaming 构建 Lego-Like 的流式数据处理 pipeline,以便快速开发 IoT 和流式数据分析...
flink,spark streaming,storm框架对比,
大数据Hadoop权威指南,pdf,中英文版。第4版 The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing. The Apache Hadoop software library is a framework...
### Hadoop Hive HBase Spark Storm概念详解 #### Hadoop **Hadoop** 是一个由Apache基金会开发的开源分布式系统基础架构。它通过提供一个高效、可靠且可扩展的平台来解决大数据存储与处理的需求。Hadoop的核心组件...
hadoop storm spark 机器学习
Big Data Analytics Beyond Hadoop.Real-Time Applications with Storm.Spark and More Hadoop Alternatives
本套视频教程主要针对2017年时的云计算与大数据技术进行讲解,重点涵盖了Hadoop、Storm、Kafka和Spark等核心组件的开发与应用。对于初学者来说,这是一份非常有价值的资源,旨在帮助他们从零基础快速建立起对大数据...
云资源汇总指引V1.5包括hadoop,openstack,storm,spark等视频文档书籍汇总
本文将深入探讨三个流行的流处理框架——Apache Storm、Spark Streaming和Apache Samza,对比它们的设计理念、功能特性以及适用场景。 首先,Apache Storm是Twitter开源的一款实时计算系统,它以低延迟和高吞吐量...