码迷,mamicode.com
首页 > 其他好文 > 详细

《HBase权威指南》读书笔记12:第十二章 集群管理

时间:2015-11-11 16:44:51      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:hbase

运维任务

减少节点

先停止一个region服务器
$ ./bin/hbase-daemon.sh stop regionserver
  1. region服务器会先关闭所有region,然后把自己停止。
  2. 等待zk超时后就会过期。
  3. master会将这台机器上的region移动到别的机器上
注意:节点关闭之前要先禁用负载均衡
hbase(main):0.01:0>balance_switch false

graceful_stop

但是region下线会带来一定的服务不可用时间,时间取决于zk的超时。这种方式不是很好。所以最好使用 graceful_stop
./bin/graceful_stop.sh HOSTNAME

graceful_stop 会先把region一个一个移动出来再关闭region服务器

滚动重启

其实就是用一段脚本,一个一个的服务器重启过去
for i in `cat conf/regionservers|sort`;do ./bin/graceful_stop.sh --restart --reload --debug $i;done &> /tmp/log.txt &

新增服务器

完全分布式集群

添加master服务器

添加一个备份master,防止单点故障问题。
/hbase/master znode 是临时znode
用以下命令启动一个备份master
$ ./bin/hbase-daemon.sh start master
如果已经有一个master,这条命令会启动一个新的master进程等待zk中的znode被移除
如果使用 --backup 则该master确定为备份master,这样可以指定某一台master为工作的master
$ ./bin/hbase-daemon start master --backup
如果经历了多次failover,就不知道哪台服务器正在工作了,所以要用浏览器一台一台的访问 60010 看过去

0.90.x以后

可以通过配置文件来指定备份服务器
conf/backup-masters

添加region服务器

用户要修改conf/regionservers 文件。
然后使用启动脚本在新节点上启动
$ ./bin/hbase-daemon.sh start regionserver

数据任务

导入/导出

$ hbase jar $HBASE_HOME/hbase-0.91.0-SNAPSHOT.jar export

具体参数请根据提示输入。只有 tablename 和 outputdir 是必填项
注意:outputdir 是导出到的HDFS目录,不是你本机的目录
相同的还有 import 命令,具体自己参考help

CopyTable工具

用户可以用该工具将一张已经存在的表从主机群复制到从集群。或者直接复制一个表
$ hadoop jar $HBASE_HOME/hbase-xxxx-.jar copytable --new.name=testtable3 testtable

批量导入

批量导入比import好的一点就是压力不会突然增大。
批量导入会经历一下步骤(具体太复杂)
  1. 使用importtsv工具准备数据
  2. 用  completebulkload (完全批量载入工具)导入数据

复制

就是replication 功能,通过 hbase.replication 来开启。开启之后从集群会自动复制主集群的表

额外的任务

集群共存

为了测试需要,经常会需要部署不止一个集群(相当于mysql里面的多个scheme)
步骤:
  1. 把 HBASE_HOME/conf 复制一份叫 conf2
  2. 修改hbase-env.sh 和 hbase-site.xml 并修改端口等参数
  3. 用 HBASE_CONF_DIR=conf.2 bin/start_hbase.sh 来启动第二个集群

改变日志级别

HBase默认日志级别为debug。可以通过编辑 conf/log4j.properties 来修改日志级别

故障处理

HBase Fsck

Hbase中有一个叫 hbck的工具,内部是用 HBaseFsck 类来实现的修复。用以下命令看参数
$ ./bin/HBase hbck -h
一旦开始运行, hbck 会扫描所有 .META. 的相关信息。然后会比较收集的信息来报告一致性和完整性问题。

一致性问题

检查region 是否同时存在于 .META. 表和 HDFS 中,并检查是否只被指派给唯一的region服务器

 完整性检查

将region于表细节信息比较来找到缺失的region。同时也会检查 region 起止键范围中的空洞,或重叠情况
检查到以上问题后用 fix 选项来修复以上问题

常见问题

调整文件句柄  

通过以下命令来检查当前ulimit设置
$ cat /proc/<PID of JVM>/limits
安全的设置是 32000

Datanode 连接数

Datanode 的并发数量至少为 4096 

压缩

压缩应该一直被打开,不过要按照 11.3中的设置压缩编码库,不然你设置了表的压缩参数 COMPRESSION 就会报错

垃圾回收/内存调优

这个命题就比较大了,参考前面的性能调优部分

稳定性问题

  • 确定region服务器和zk没有开始使用 swap
  • 检查网络问题
  • 检查垃圾回收产生的停顿
  • 监控慢磁盘






版权声明:本文为博主原创文章,未经博主允许不得转载。

《HBase权威指南》读书笔记12:第十二章 集群管理

标签:hbase

原文地址:http://blog.csdn.net/nsrainbow/article/details/49670479

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!