【问题标题】:HMaster vs Zookeeper - HBaseHMaster vs Zookeeper - HBase
【发布时间】:2015-07-04 03:28:38
【问题描述】:

我最近一直在做很多关于 HBase 的阅读,我对 HMaster 和 Zookeeper 在 HBase 架构中的作用有点困惑。

  • 当客户端请求数据时,谁得到该请求?假设这是第一个请求。我了解后续请求可以直接向区域服务器发出。但要做到这一点,需要检索元文件的位置,然后需要在区域服务器中的特定元表上运行获取或扫描。

我问的原因是,如果我使用 Java,我会使用 HConnectionManager 类来创建连接。看起来 HConnectionManager 已经有一个可用的区域位置缓存。构建缓存的原因将是在较早发出一些请求时,但是如果缓存不存在并且这是第一个请求怎么办。

谁接受了第一个 HBase 请求,会是 zookeeper quorum?我们正在为 HBaseConfiguration 类提交 hbase-site.xml 文件。

  • 另外,我对如何定义“客户”有点困惑?

我读到的另一件事是元信息被缓存在“客户端”上,即使在 HBase REST 的情况下也是如此吗?这里的客户端是 HMaster 还是进行 REST 调用的实际用户。如果是这样,如果元数据暴露给客户端,它不会暴露安全威胁。

【问题讨论】:

    标签: hadoop hbase apache-zookeeper


    【解决方案1】:

    客户端连接到 ZooKeeper 以获取最新状态。 HBaseMaster 的作用是确保这个列表是正确的(即在启动、失败等时将区域分配给区域服务器)。客户将仅出于管理目的联系 HBaseMaster,例如创建表,更改其结构等(通过 HBaseAdmin 类)。你可以阅读更多关于它的信息here

    在 HBase REST 的情况下,客户端将 REST 请求发送到内部包含 HBase 客户端的 REST 服务器

    【讨论】:

      【解决方案2】:

      以下基于 HBase-1.0.1.1 的答案:

      1.当客户端请求数据时,谁会收到该请求?

      a) 查找 zookeeper 以获取 hbase:meta 区域位置并缓存 meta 区域位置以供将来使用。

      b) 扫描区域服务器中的 hbase:meta 并获取我们需要的区域位置。客户端也缓存区域位置。

      c) 请求区域服务器。

      2.谁接受了第一个HBase请求,会是zookeeper quorum吗?

      是的,如果一切都是第一,否则可能是元区域或用户表区域。

      3.安全

      你可以使用kerberos。它支持HBase。

      【讨论】:

        猜你喜欢
        • 2019-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多