滚动重启
使用greceful_stop.sh脚本来重启region服务器,并将之前属于他的region移回原位。
Balance_switch false $for I in ‘cat conf/regionservers|sort’; Do ./bin/graceful_stop.sh -- restart --reload --debug $i; Done &> /tmp/log.txt & Balance_switch true
使用tail –f 命令查看/tmp/log.txt中脚本运行的进度。以上操作只对region服务器有效。
同时请确保在执行上述操作之前已禁用负载均衡。
实现滚动重启的步骤:
1. 解压用户的发行版,将配置调整好后分发到整个集群
2. 运行hbck以确认集群数据的一致性(主要验证meta表),如果有不一致的情况要修复一下。
Hbase hbck
3. 重启master
Hbase-daemon.sh stop master; hbase-daemon.sh start master
4. 关闭region均衡器
Echo “balance_switch false” | hbase shell
5. 在每个region服务器上运行graceful_stop.sh脚本
$for I in ‘cat conf/regionservers|sort’;
Do ./bin/graceful_stop.sh -- restart --reload --debug $i;
Done &> /tmp/log.txt &
6. 再次重启master。这样会清除其保存的崩溃的服务器列表,并同时启动负载均衡
Hbase-daemon.sh stop master; hbase-daemon.sh start master
Echo “balance_switch true” | hbase shell
7.运行hbck以确认集群一致性。
新增服务器
1. 伪分布式模式
在一台服务器上模拟整个集群的运行状态。所有进程都要分享本地资源。
适合少量数据的测试。
添加本地备份master:
Local-master-backup.sh start 1
命令最后的数字指定了master的RPC端口和WebUI端口与默认配置值的偏移量。两个端口的默认值分别是60000和60010,偏移量会被加到相应的默认值上。
上面的命令执行后,一个新的master进程将会启动,与原来的配置一样,不过监听的端口号分别是60001和60011.
启动多个备份master
Local-master-backup.sh start 1 3 5
3个用于备份的master的RPC端口分别是60001,60003和60005
WebUI监听端口为60011,60013和60015。
停止备份master
Local-master-backup.sh stop 1
用户可以一次停止多个备份master,用户指定的端口偏移量用于停止对应的master。
添加本地region服务器
使用local-regionservers.sh,和启动本地master服务器类似,指定偏移量即可
Region服务器默认使用60200作为RPC端口,使用60300作为Web UI端口。
Local-regionservers.sh start 1 Local-regionservers.sh start 1 2 3 Local-regionservers.sh stop 1
2.完全分布式集群
添加一个备份master
通过备份master节点避免master出现故障而造成Hbase单点失效。
Master进程使用Zookeeper来协商哪一个是当前活动的进程。Zookeeper中有一个所有master进程都会竞争的专用znode。第一个竞争到的master会创建这个znode。当集群启动时,竞争获胜的master会成为当前提供服务的master,其他master进程只是轮询检查这个znode,当它消失时再次竞争。
/hbase/master znode是临时znode。Region服务器对于的znode节点也是临时节点,用于报告他们的存在状态。
通常master服务器的配置与集群的其他机器相同,一旦用户确认配置没有问题,用一下命令启动一个备份master:
Hbase-daemon.sh start master
假设已经有master正在运行,这条命令就会启动一个新的master进程等待Zookeeper中的Znode被移除。
使用--backup参数指定备份的master
Hbase-daemon.sh start master --backup
会新启动一个master来等待一个专有的master,即使用start-hbase.sh脚本启动,或不加—backup参数启动的master在ZooKeeper中创建/hbase/master这个znode。
启动的备份master会进入轮询选举阶段。
在Hbase0.90.x开始,可以通过conf目录下添加backup-masters文件来指定备份服务器。
如:添加3个备份master运行在Zookeeper所在的服务器上
Conf/backup-masters中的内容:
Zk1.foo.com Zk2.foo.com Zk3.foo.com
注意:在backup-masters中的节点会使用—backup选项来启动备份master进程。并且是在start-hbase.sh脚本启动主master和region服务器之后,备份master才会启动。
添加region服务器
步骤:
1. 修改conf目录下的regionservers文件,这样可以使启动脚本能够添加新服务器。
简单地在文件中添加一行,内容为对应要添加的region服务器的主机名
2. 将修改的配置文件复制到集群中所有的机器上
3. 确认新添加的机器上已经安装Hbase,且配置正确
4. 在master机器上执行start-hbase.sh脚本,会跳过所有以已经启动region服务器的服务。
另一种,直接在新的机器上执行
Hbase-daemon.sh start regionserver
日志分析
不同服务种类创建的日志文件
服务器类型 log文件
HBase Master $HBASE_HOME/logs/HBase-<user>-master-<hostname>.log
HBase RegionServer $HBASE_HOME/logs/HBase-<user>-master-<hostname>.log
ZooKeeper 只在控制台打印日志
NameNode $HADOOP_HOME/logs/hadoop-<user>-namenode-<hostname>.log
DataNode $HADOOP_HOME/logs/hadoop-<user>-datanode-<hostname>.log
JobTracker $HADOOP_HOME/logs/hadoop-<user>-jobtracker-<hostname>.log
TaskTracker $HADOOP_HOME/logs/hadoop-<user>-jobtracker-<hostname>.log