hbase区域-区域服务器编程分配

im9ewurl  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(352)

假设我有100个 HBase 节点和多个表 A, B, C 有000:099前缀的键。表是用基于前缀的拆分创建的,因此每个表有100个区域。
我要为所有行分配前缀: 000node-00 , 001node-01 ,
等等。
其思想是在同一台机器上保存具有相同前缀的数据,因为我的典型场景是处理表a,转换数据并将其放入表b,然后多次处理表b并执行一些转换和聚合。
我没有看到文件中的说明,需要一些关于如何进行的建议。

r8uurelv

r8uurelv1#

您可以创建一个包含所需区域数的新表。然后在使用move命令填充表之前执行手动区域平衡,将区域放置到所需的服务器。请参阅帮助

hbase(main):004:0> help move

Here is some help for this command:
Move a region.  Optionally specify target regionserver else we choose one
at random.  NOTE: You pass the encoded region name, not the region name so
this command is a little different to the others.  The encoded region name
is the hash suffix on region names: e.g. if the region name were
TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396. then
the encoded region name portion is 527db22f95c8a9e0116f0cc13c680396
A server name is its host, port plus startcode. For example:
host187.example.com,60020,1289493121758
Examples:

  hbase> move 'ENCODED_REGIONNAME'
  hbase> move 'ENCODED_REGIONNAME', 'SERVER_NAME'

或者您可以尝试使用hbaseadmin来执行此操作,请参阅方法move。

相关问题