【hbase】hbase balance命令走过的坑

转载:https://blog.csdn.net/yuanhaiwn/article/details/82781459

balance主要有四个命令

  • balance_switch
  • balancer
  • balancer_enabled
  • balance_rsgroup(如果开启了rsgroup)

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, 后面说

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).

这个命令是手动执行一次整个集群的balance, 如果执行成功了就会返回true, 如果因为某些原因没执行成功, 返回false

balancer_enabled

hbase(main):032:0* help 'balancer_enabled'
Query the balancer's state.
Examples:

  hbase> balancer_enabled

查看当前balancer的状态, 这个命令才是真正查询balancer状态的.

balance_rsgroup(如果)

这个命令只有开启了rsgroup才会有

hbase帮助信息:


hbase(main):033:0> help 'balance_rsgroup'
Balance a RegionServer group

Example:

  hbase> balance_rsgroup 'my_group'

应该是手动balance一次分组

总结

对于自动balance来说, 只需要关注三个命令:

  • balance_switch true 开启自动balance

  • balance_switch false 关闭自动balance

  • balancer_enabled 查看自动balance当前状态

posted @ 2022-11-10 19:24  彬在俊  阅读(107)  评论(0编辑  收藏  举报