1.增加RegionServer节点
①修改conf目录下的regionservers文件,添加新节点的主机名;
②复制该文件到集群中的所有机器;
③启动该机器:
1.master节点上执行start-hbase.sh脚本,其会检查regionservers文件并跳过已经启动的子节点,将其中未启动的节点启动
2.对应的子节点上执行hbase-daemon.sh start regionserver命令,随后该机器上的RegionServer服务启动
④节点启动之后会在ZK上注册创建对应的znode,然后它会加入集群被分配region等
*注意:Hbase底层是以HDFS来存储数据的,且一般HDFS的DataNode和Hbase的RegionServer位于同一台物理机上,所以在增加一个RegionServer之前需要往HDFS里增加DataNode
2.被动-移除RegionServer节点
①指定节点上运行hbase-damon.sh stop命令;
②关闭此节点上的所有Region;
③停止RegionServer进程
④Zookeeper中对应的Znode节点过期;
⑤Master检测到Regionserver停止服务;
⑥将此节点上的Region分配到其他机器
3.主动-移除RegionServer节点
①运行graceful_stop.sh hostname脚本
②关闭Region均衡器;
③从需要停止的RegionServer上移出Region,并随机把他们分配给集群中其他服务器
④停止RegionServer进程
4.增加Master备份节点
为了增加HBase集群的可用性,可以为HBase增加多个备份Master。当Master挂掉后,备份Master可以自动接管整个HBase的集群
·HBase的conf下增加文件backup-masters,
· 启动hbase-damon.sh start 命令
当集群启动时,所有进程都会去竞争作为主Master来提供服务,其他Master会轮询检测当前主Master是否失效;如果失效,则会触发新的Master选举
数据管理-数据导出
hbck原理:
·扫描.META.表收集所有的相关信息
·扫描HDFS中的root目录
·比较收集的信息来报告 相关的一致性和完整性问题
一致性检测:Region是否同时存在于.META.表和HDFS中,并检查是否只被指派给唯一的RegionServer。
完整性检测:以表为单位,将Region与表细节信息进行比较以找到缺失的Region,同时也会检查region的起止键范围中的空洞或重叠情况。