你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2015-11-10] 来源: CSDN博客  作者: [字体: ]

运维任务

减少节点

先停止一个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
  • 检查网络问题
  • 检查垃圾回收产生的停顿
  • 监控慢磁盘




收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款