如何将HBase表强制到区域服务器

yon*_*igo 4 hadoop hbase apache-zookeeper

我有2个Hbase表,我想强制它们中的每一个到不同的区域服务器.有没有办法告诉HBase这样做?

Max*_*ind 9

您可以使用hbase shell move命令将区域移动到另一个区域服务器:

hbase> move ‘ENCODED_REGIONNAME’, ‘SERVER_NAME’
Run Code Online (Sandbox Code Playgroud)

移动一个区域.(可选)指定目标区域服务器,我们随机选择一个.注意:您传递编码的区域名称,而不是区域名称,因此此命令与其他命令略有不同.编码区域名称是区域名称上的哈希后缀:例如,如果区域名称是TestTable,则为0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.那么编码区域名称部分是527db22f95c8a9e0116f0cc13c680396服务器名称是它的主机,端口加上startcode.例如:host187.example.com,60020,1289493121758

这里有更多shell命令

虽然如果两个表都很大,但它们可以在集群中的每个RegionServer上都有区域,所以我不确定你要用它来完成什么.

  • 请记住,您将在此过程中丢失数据局部性。HBase数据在写入时是本地的,但是在移动区域时,直到发生重大压缩时它才是本地的。因此,这可能是在移动您的区域之前要考虑的事项 (2认同)