【问题标题】:1 big Hadoop and Hbase cluster vs 1 Hadoop cluster + 1 Hbase cluster1 个大型 Hadoop 和 Hbase 集群 vs 1 个 Hadoop 集群 + 1 个 Hbase 集群
【发布时间】:2014-06-03 13:46:14
【问题描述】:

Hadoop 将通过从 Hbase 读取数据并将数据写入到 Hbase。假设我有 100 个节点,那么有两种方法可以构建我的 Hadoop/Hbase 集群:

  1. 100 个节点 hadoop 和 hbase 集群(1 个大型 Hadoop 和 Hbase)

  2. 分离数据库(Hbase),那么我们有两个集群: 60 个节点的 Hadoop 集群和 40 个节点的 Hbase 集群(1 个 Hadoop + 1 个 Hbase)

哪个选项更好?为什么?

谢谢。

【问题讨论】:

    标签: hadoop hbase


    【解决方案1】:

    我会说 选项 2 更好。
    我的推理 - 尽管您的要求主要是运行大量 mapreduce 作业以从 hbase 读取和写入数据,但仍有很多hbase 为您提交的作业优化这些读取和写入的幕后工作。 Hmaster 必须经常进行负载平衡,除非您的区域键完全平衡。表热点可以在那里。对于Regionserver,会有major-compactions,如果你的jvm技能不是那么好,那么偶尔 Stop the World 垃圾收集可能会发生。所有区域可能同时开始分裂。您的区域服务器可能会关闭等等。
    有争议的一点是 - 调整 hbase 需要时间。如果您只有一个专门用于 hbase 的节点,那么出现上述问题的可能性会更高。拥有多个节点总是更好,因此所有性能压力都不仅仅适用于一个节点。顺便说一句,hbase 的得分点是它固有的分布式特性,你不会想杀死它。
    综上所述,你可以试验下 hadoop 和 hbase 的节点比例——可能是 70:30 或 80:20。里程可能会根据您的申请要求而有所不同。

    【讨论】:

      【解决方案2】:

      将 HBase 和 Hadoop 分开的主要原因是它们有不同的使用场景 - 即 HBAse 以低延迟进行随机读写,而 Hadoop 进行顺序批处理。在这种情况下,不同的访问模式可能会相互干扰,最好将集群分开。

      如果您只是在批处理模式下使用 HBase,您可以使用相同的集群(并且可能重新考虑使用 HBase,因为它比批处理中的原始 hadoop 慢)。

      请注意,无论您采用何种路径,都需要按照 Chandra Kant 提到的路线调整 HBase

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-22
        • 2016-11-12
        相关资源
        最近更新 更多