hbase balance命令走过的坑
1.前言
balance主要有四个命令:balance_switch
, balancer
, balancer_enabled
,balance_rsgroup(
如果开启了rsgroup)
2. balance_switch
hbase帮助信息:
hbase(main):001:0> help 'balance_switch'
Enable/Disable balancer. Returns previous balancer state.
Examples:
hbase> balance_switch true
hbase> balance_switch false
开启或关闭自动 balance, 返回的是之前的状态, 切记, 切记, 返回的是之前的状态, 我就是想当然的以为是当前状态, 结果闹了好多笑话.
这里面还需要注意的一点就是, 帮助信息里面只有 true 和 false, 而自己敲命令的时候, 写完 balance_switch 再随便跟个字母, tab键提示的时候会有一堆命令, 我就用了其中一个命令 balance_switch status, 还以为是查看balance当前状态的, 结果就搞笑了, 一会儿true, 一会儿false
balance_switch status 经测试, 这个命令的意思是将balance状态强制转换为false, 无论之前是true还是false, 返回的是之前的状态, 所以一会儿true, 一会儿false, 所以这个命令很鸡肋, 别乱用, 查看当前状态的命令是balancer_enabled, 后面说
3. balancer
hbase帮助信息:
hbase(main):027:0* help 'balancer'
Trigger the cluster balancer. Returns true if balancer ran and was able to
tell the region servers to unassign all the regions to balance (the re-assignment itself is async).
Otherwise false (Will not run if regions in transition).
没搞清楚这个命令是干啥的, 搞清楚了再详说
下面是谷歌翻译:
触发群集平衡器。 如果平衡器运行并且能够返回true
告诉region servers取消分配所有region以进行平衡(重新分配本身是异步的)。
否则为false(如果区域处于转换状态,则不会运行)。
4. balancer_enabled
hbase(main):032:0* help 'balancer_enabled'
Query the balancer's state.
Examples:
hbase> balancer_enabled
查看当前balancer的状态, 这个命令才是真正查询balancer状态的.
4. balance_rsgroup(如果)
这个命令只有开启了rsgroup才会有
hbase帮助信息:
hbase(main):033:0> help 'balance_rsgroup'
Balance a RegionServer group
Example:
hbase> balance_rsgroup 'my_group'
应该是手动balance一次分组
5. 总结
对于自动balance来说, 只需要关注三个命令:
balance_switch true 开启自动balance
balance_switch false 关闭自动balance
balancer_enabled 查看自动balance当前状态
还没有评论,来说两句吧...