我有两个区域服务器RS1
和RS2
。我想确保所有带有小于M
字母的键的行都转到RS1
中的区域,然后停留在RS2
中的区域。
怎么做?
答案 0 :(得分:1)
你应该看看http://hbase.apache.org/book/regions.arch.html,HBase书中有很多关于地区和分裂的信息。
关于您的问题,您只需创建一个包含2个区域的表,并将每个区域分配给每个区域服务器。要创建一个包含2个区域的表,您只需提供一个分割点(默认情况下,只会创建一个区域)
$ hbase shell
hbase> create 'my_table', 'f1', SPLITS=> ['M']
完成后,请与主人联系,检查您的表格区域http://my_master:60010/table.jsp?name=my_table
Name | Region Server | Start Key | End Key | Requests
my_table,,1420361349896.82ef0d5d63ecc37bc076f51f6a7d3074. | my_rs_1:60030 | | M | 0
my_table,M,1420361349897.9ce694c69f1b177a1db2dce224febb92. | my_rs_2:60030 | M | | 0
您可能会自动为每个区域服务器分配一个区域,但如果两个区域位于同一个区域服务器(即my_rs_1),您可以将其中一个区域移动到另一个区域:
hbase> move '9ce694c69f1b177a1db2dce224febb92','my_rs_2,60020,1414964067589'
请注意,move命令要求您提供已编码的区域名称和完整的服务器ID(您可以在此处找到您的区域服务器ID列表http://my_master:60010/master-status
)
然后再次前往您的主人http://my_master:60010/table.jsp?name=my_table
,检查该区域是否已成功分配到其他区域服务器。