【问题标题】:Apache Storm compared to HadoopApache Storm 与 Hadoop 的比较
【发布时间】:2012-06-30 06:59:11
【问题描述】:

Storm 与 Hadoop 相比如何? Hadoop 似乎是开源大规模批处理的事实标准,Storm 比 hadoop 有什么优势吗?还是它们完全不同?

【问题讨论】:

  • 我认为这个问题完全有道理,我很难理解这样一个有用的问题是如何被关闭为非建设性的。问题很直接,不需要事实、参考资料等。

标签: hadoop streaming apache-storm


【解决方案1】:

你为什么不说出你的意见。

Twitter Storm 被吹捧为实时 Hadoop。这更像是一种易于消费的营销方式。

它们表面上很相似,因为它们都是分布式应用程序解决方案。除了主/从、基于 Zookeeper 的协调等典型的分布式架构元素之外,在我看来,这种比较就落伍了。

Twitter 更像是一个处理数据的管道。管道连接各种计算节点,这些节点接收数据、计算和传递输出。 (术语是 spouts 和 bolts)将此类比扩展为一个复杂的管道布线,可以在需要时重新设计,你就会得到 Twitter Storm。

简而言之,它处理数据。没有延迟。

Hadoop 在这方面的不同主要是由于 HDFS。它是一种面向分布式存储和容忍许多规模(磁盘、机器、机架等)中断的解决方案

M/R 旨在利用 HDFS 上的数据本地化来分发计算作业。它们一起不提供实时数据处理的设施。但是,当您查看大数据时,这并不总是需要。 (大海捞针的比喻)

简而言之,Twitter Storm 是一个分布式实时数据处理解决方案。我认为我们不应该比较它们。 Twitter 之所以构建它,是因为它需要一个工具来实时处理小推文,但数量巨大。

如果你不得不将它与某些东西进行比较,请参阅:HStreaming

【讨论】:

  • +1,完全同意。只是一个小提示:Twitter 没有构建它,他们acquired它。 BackType 最初构建它。
  • @johndodo:谢谢。我完全不知道它的起源。
  • 与不断变化的拓扑的管道很好的类比。
  • 由于问题已经结束,我将添加我的意见作为评论:只需将 Storm 与 Hadoop 视为 STDIN 处理与 File 加工。以字数统计应用程序为例,Stormie 从控制台读取您输入的单词,而 Hadooper 从您昨天创建的磁盘文件中扫描单词。只是当任务量变得太大时,Storm 和 Hadoop 都必须分布式。
  • 基本上,Storm 擅长 Hadoop 不具备的所有功能(实时计算)。 Hadoop 擅长 Storm 不具备的所有功能(持久性)。这两个系统是互补的,Twitter 现在开源了 [Summingbird|github.com/twitter/summingbird],它将两者连接起来......
【解决方案2】:

基本上,它们都用于分析大数据,但 Storm 用于实时处理,而 Hadoop 用于批处理。

这是我发现的一个很好的 Storm 介绍: Click here

【讨论】:

    【解决方案3】:

    与其进行比较,它们现在应该通过批处理 + 实时(伪实时)处理相互补充。有对应的视频演示——Ted Dunning on Twitter's Storm

    【讨论】:

    • 这个推特风暴架构可以在windows环境下复制吗?
    • 几乎所有东西都可以复制,但我怀疑这在 Windows 中实现有什么意义,因为 Storm 旨在用于“实时”处理。
    • “伪实时”是什么意思,请展开。
    • 没什么特别的。只是想指出,“实时”软件对包括操作系统在内的要求更严格——“实时操作系统(RTOS)是一种旨在服务于实时应用程序请求的操作系统(OS)。它必须能够处理数据,通常没有缓冲延迟。处理时间要求(包括任何操作系统延迟)以十分之一秒或更短的时间测量。“(en.wikipedia.org/wiki/Real-time_operating_system)。从这个意义上说,Storm 的实时特性是区别于批处理系统的一种方式。
    【解决方案4】:

    我使用 Storm 已经有一段时间了,现在我放弃了这项非常棒的技术,转而使用一项了不起的技术:Spark (http://spark.apache.org),它为开发人员提供了用于批处理或流处理(微批处理)的统一 API以及机器学习和图形处理。

    值得一试。

    【讨论】:

      【解决方案5】:

      Storm 适用于快速数据(实时),而 Hadoop 适用于大数据(预先存在的大量数据)。 Storm 无法处理大数据,但它可以生成大数据作为输出。

      【讨论】:

        【解决方案6】:

        Apache Storm 是一个免费和开源的分布式实时计算系统。 Storm 可以轻松可靠地处理无限制的数据流,实时处理就像 Hadoop 进行批处理一样。

        由于 Hadoop 生态系统中存在许多子系统,我们必须根据业务需求和特定系统的可行性来选择合适的子系统。

        Hadoop MapReduce 对于一次处理一项作业非常有效。这就是为什么 Hadoop 被广泛用作数据仓库工具而不是数据分析工具的原因。

        由于问题仅与“Storm”与“Hadoop”有关,请查看Storm use cases - 金融服务、电信、零售、制造、运输.

        1. Hadoop MapReduce 最适合批处理。
        2. Storm 是一个完整的流处理引擎,可用于实时数据分析,延迟为亚秒级。

        查看dezyre article 以比较 Hadoop、Storm 和 Spark。它解释了相同点和不同点。

        可以用下图概括(来自dezyre文章)

        【讨论】:

          猜你喜欢
          • 2013-08-08
          • 1970-01-01
          • 2016-02-29
          • 1970-01-01
          • 1970-01-01
          • 2016-08-05
          • 1970-01-01
          • 2010-11-14
          • 2012-04-06
          相关资源
          最近更新 更多