Hbase - 写操作

时间:2014-12-22 07:30:37

标签: hadoop hbase

在HBase中,元数据存储在目录表中,即META表中。 HMaster在启动或区域拆分期间或在区域负载平衡期间更新此表。客户希望得到一些ROW,从META表中获取区域信息。

我的问题是,当我们在特定表中插入新行时,如何更新此元表?例如,我执行了一个put命令,在现有表中插入一个新行,该行如何反映在Meta表中,以便另一个客户端想要获取此行可以拉取区域信息。

1 个答案:

答案 0 :(得分:0)

除非您添加新区域,否则无需进行META更新。

META只保留系统中的区域地图(区域名称 - >机器)

区域包含一组行。假设你有一个包含3个区域的表

  • 区域1:[0,3]
  • 地区2:[4,6]
  • 地区3:[7,9]

如果插入以0到3之间的数字开头的键,则数据将插入到区域1中。 如果插入以4到6之间的数字开头的键,则数据将插入到区域2中。 如果插入以7到9之间的数字开头的键,则数据将插入到3区。

当你要求特定的钥匙(放或拿)时。咨询META并且客户询问哪个区域包含密钥X.负责处理该范围的区域将被退回,并且您的操作将被发送到那里。

因此,您无需在每次插入时更新META。它是基于关键范围的一切。 (如果你有一个区域,那个区域将负责处理所有的密钥,直到它变大,它会分成两个。然后左边区域将包含低于原始区域中存在的中间密钥的密钥和右侧区域将包含比原始区域中存在的中间键更高的键