Storm和Hadoop有什么不同?Hadoop似乎是开源大规模批处理的事实标准,Storm是否比Hadoop更具优势?或者它们完全不同?
Storm和Hadoop有什么不同?Hadoop似乎是开源大规模批处理的事实标准,Storm是否比Hadoop更具优势?或者它们完全不同?
Twitter Storm被誉为实时Hadoop。这更多是一种市场宣传,以便更容易理解。
虽然二者都是分布式应用程序解决方案,它们在架构元素(如主/从、基于Zookeeper的协调)等常见分布式方面类似,但我认为它们的相似之处到此为止了。
Twitter更像一个处理数据的管道,这个管道连接各种计算节点,接收数据、进行计算并输出结果。(他们的术语是spout和bolt)把这个比喻扩展到可以重新设计的复杂管道布线上就是Twitter Storm。
简单来说,它可以随时处理数据,没有延迟。
然而,Hadoop在这方面有所不同,主要是由于HDFS(Hadoop分布式文件系统)。它是针对分布式存储和各个层面(磁盘、机器、机架等)的故障容错解决方案。
MapReduce旨在利用HDFS上的数据本地化来分配计算作业。它们一起不能提供实时数据处理的功能。但是,在查找大量数据时并不总是需要实时性。(类比寻找干草堆中的针头)
简而言之,Twitter Storm是一个分布式实时数据处理解决方案。我认为我们不应该将其与Hadoop进行比较。Twitter构建它是因为它需要处理小推文但有巨大数量的数据,并且需要实时处理。
如果您非要比较的话,请参考:HStreaming
我之前一直在使用Storm,但现在我已经放弃了这个非常好的技术,转而使用一个更加惊人的技术:Spark (http://spark.apache.org)。它为开发人员提供了统一的API,可用于批处理或流处理(微批处理),以及机器学习和图形处理。
值得一试。
Storm 用于快速数据(实时)处理,而 Hadoop 用于大数据(已有大量数据)处理。Storm 无法处理大数据,但可以将其作为输出生成大数据。
看一下这个dezyre文章,比较Hadoop、Storm和Spark之间的差异和相似之处。它解释了它们之间的相似和不同。
可以用下面的图片(来自dezyre
文章)概括: