我无法理解如何或由谁(哪个组件)负责将hbase行分配给区域或区域服务器?例如,在其他数据库系统中,客户端代码对键进行哈希处理,并询问“某个”主节点在何处放置计算出的哈希值的模块。例如,在cassandra中,每个节点都有有关每个节点应该存储的键范围的元数据,而“协调器”节点则将其转发到该节点。
答案 0 :(得分:1)
每个HBase区域由可以存储在其中的键范围([startRow, endRow)
)定义。分配给某个RegionServer的每个区域都可以处理对它的请求。
HBase客户端扫描meta
表,该表包含有关区域及其位置(位于哪个RegionServer上)的信息。在每个请求上,客户端都会确定应将此请求发送到哪个RegionServer。