【问题标题】:How is a row assigned to a region and region server in Hbase?Hbase 中如何将行分配给区域和区域服务器?
【发布时间】:2019-07-11 22:21:27
【问题描述】:

我无法理解如何或谁(哪个组件)负责将 hbase 行分配给区域或区域服务器?例如,在其他数据库系统中,客户端代码对密钥进行哈希处理,并询问“某个”主节点将计算出的哈希模块放置在哪里。例如,在 cassandra 中,每个节点都有关于每个节点应该存储的键范围的元数据,“协调器”节点只是将其转发到该节点

【问题讨论】:

    标签: hbase


    【解决方案1】:

    每个 HBase 区域由可以存储在其中的键范围 ([startRow, endRow)) 定义。每个区域都分配给某个 RegionServer 来处理对它的请求。
    HBase 客户端扫描meta 表,该表包含有关区域及其位置(在哪个 RegionServer 上)的信息。在每个请求上,客户端都会确定应该将请求发送到哪个 RegionServer。

    【讨论】:

    • 那么客户端是否针对 hbase 元表对输入分区键进行范围检查?
    • 扫描并缓存表的所有区域位置。在下一次请求期间,它使用本地缓存的知识来找到合适的 RegionServer。
    猜你喜欢
    • 1970-01-01
    • 2013-12-02
    • 2013-07-23
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多