【问题标题】:How to force an HBase table to a region server如何强制 HBase 表到区域服务器
【发布时间】:2017-02-06 13:15:45
【问题描述】:

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

【问题讨论】:

  • 我不认为你能做到这一点,但你这样做的要求是什么?
  • 是的,为什么?桌子有多大?

标签: hadoop hbase apache-zookeeper


【解决方案1】:

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

hbase> move ‘ENCODED_REGIONNAME’, ‘SERVER_NAME’

移动一个区域。可选地指定目标区域服务器,否则我们选择 随机一个。注意:您传递的是编码区域名称,而不是区域 名称所以这个命令与其他命令有点不同。编码的 区域名称是区域名称的哈希后缀:例如如果该地区 名字是 测试表,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396。 那么编码的区域名称部分是 527db22f95c8a9e0116f0cc13c680396 服务器名是它的主机,端口加 起始码。例如:host187.example.com,60020,1289493121758

更多shell命令here

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

【讨论】:

  • 请记住,您将在此过程中丢失数据局部性。 HBase 数据在写入时是本地的,但是当一个区域被移动时,它不是本地的,直到发生major compaction。所以这可能是在移动您的区域之前需要考虑的事情
猜你喜欢
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多