【问题标题】:How efficient are opensource computation platform like Hadoop etc.?Hadoop等开源计算平台的效率如何?
【发布时间】:2011-07-27 16:46:26
【问题描述】:

像 Hadoop 这样的开源分布式计算框架的效率如何?通过效率,我的意思是 CPU 周期可用于主要是纯计算的任务中的“实际工作”。换句话说,有多少 CPU 周期被用于开销,或者因为没有被使用而被浪费?我不是在寻找具体的数字,只是一个粗略的图片。例如。我可以期望使用集群 90% 的 CPU 能力吗? 99%? 99.9%?

更具体地说,假设我要计算 PI,并且我有一个算法 X。当我在紧密循环中的单个内核上执行此操作时,假设我获得了一些性能 Y。如果我在使用例如分布式方式Hadoop,我可以预期多少性能下降?

我知道这取决于许多因素,但大概的大小是多少?我正在考虑一个可能有 10 到 100 台服务器(总共 80 到 800 个 CPU 内核)的集群,如果这很重要的话。

谢谢!

【问题讨论】:

    标签: performance hadoop mapreduce


    【解决方案1】:

    从技术上讲,hadoop 在几个方面都有相当大的开销:
    a) 每个任务的开销,估计为 1 到 3 秒。
    b) HDFS 数据读取开销,由于通过套接字和 CRC 计算传递数据。很难估计
    如果您有很多小任务,和/或如果您的数据处理很轻,这些开销可能非常重要。
    同时,如果您的文件很大(任务较少)并且您的数据处理很繁重(比如说每个核心几 mb/秒),那么 Hadoop 开销可以忽略不计。
    归根结底 - Hadoop 开销是可变的,很大程度上取决于您正在执行的处理的性质。

    【讨论】:

      【解决方案2】:

      这个问题过于宽泛和模糊,无法有效回答。有许多不同的开源平台,它们的质量差异很大。例如,一些早期的 Beowulfs 是出了名的浪费,而现代的 MPI2 则相当精简。

      此外,“效率”在不同领域意味着不同的东西。这可能意味着相对于工作负载(在这种情况下,您正在比较 MPI 与 Map/Reduce)构建和传递消息所花费的 CPU 开销,或者可能意味着解释器/VM 浪费的 CPU 周期数,如果有的话(在这种情况下,您正在比较 C++ 与 Python)。

      这也取决于您要解决的问题。在某些领域,你有很多小消息来回飞来飞去,在这种情况下,构建它们的 CPU 成本很重要(比如高频交易)。在其他情况下,您的工作块相对较少但较大,因此与工作块内的数学计算效率(如 Folding@Home)相比,打包消息的成本很小。

      总而言之,这是一个不可能普遍回答的问题,因为没有一个答案。这具体取决于您尝试使用分布式平台做什么,以及它运行在什么机器上。

      【讨论】:

      • 我想我要问的是,从一个计算 PI 的黑盒 SDK(C++ 或 python 或任何东西)开始(因此最小的 IO,非常小的,最小的消息传递听起来是一个合理的假设),如何由于以分布式方式执行此操作,我会失去多少性能?我基本上想知道 OSS 社区的“最新技术”。另外,分布式,我的意思是让所有节点都在解决问题就足够了(无需缩短响应时间,只需从集群中获得最大的计算吞吐量)。
      • @Enno 我不确定这个问题在一般情况下是否可以回答,因为它取决于特定问题。例如,Hadoop 对于图遍历问题根本不是很好,但对于合并连接来说它非常有效。每个框架都有其优点和致命弱点,您需要确保框架非常适合该问题并且您有一个良好的实现。
      【解决方案3】:

      MapR 是 Apache Hadoop 的替代方案之一,Srivas(MapR 的首席技术官和创始人)将 MapR 与 Apache Hadoop 进行了比较。下面的演示文稿和视频包含比较 MapR 和 Apache Hadoop 的指标。看起来硬件在 Apache Hadoop 中没有得到有效利用。

      http://www.slideshare.net/mcsrivas/design-scale-and-performance-of-maprs-distribution-for-hadoop

      http://www.youtube.com/watch?v=fP4HnvZmpZI

      Apache Hadoop 在某些方面似乎效率低下,但 Apache Hadoop 社区围绕可扩展性/可靠性/可用性/效率开展了大量活动。下一代 MapReduce、HDFS 可扩展性/可用性是目前正在工作的一些事情。这些将在 Hadoop 版本 0.23 中可用。

      不久前,Hadoop 社区的重点似乎是可扩展性,但现在也转向了效率。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-06
        • 2021-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多