【Hbase】运维记录

查看配额与文件数

 hadoop fs -count -q /
得出的结果依次是文件数限额  可用文件数  空间限额 可用空间     目录数  文件数  总大小 文件/目录名
设置配额  hadoop dfsadmin -setSpaceQuota 4000 /hbase/data/ns_ffoss
删除配额  hadoop dfsadmin -clrSpaceQuota /hbase/data/ns_ffoss 
 

​​hbase-version 和 hbase.id  丢失 

原因:未知  可能是删除错误块 删除zk的/hbase节点
解决: 
关闭hbase
hadoop dfs  -mv  /hbase   /hbasebak
然后重启hbase  可以生成id 和version

compaction 

major compaction 的功能是将所有的store file合并成一个
 major_compact   'tableName'

1) 通过hbase shell命令 major_compact进行触发
2) compact when file <= sum(smaller_files) * 'hbase.hstore.compaction.ratio'
 这种情况是选中的文件数量等于store中的文件数量时,会有minor compact升级为major compact
3) major compact时间间隔到期: after (now - min(StoreFile.timestamp)) >
"hbase.hregion.majorcompaction" + rand() *hbase.hregion.majorcompaction.jitter"
3种方式,可以激发major compact

定时清理日志

30 6 * * 0   find /root/hadoop-2.5.0-cdh5.2.0/logs -type f -mtime +30 | grep -v "\\.out$" | grep -v "\\.log$" | grep -v SecurityAuth | xargs rm -f {} \ 
调整cache和swap

sysctl -w vm.min_free_kbytes=1024000

sysctl -w vm.vfs_cache_pressure=200

sysctl -w vm.swappiness=0

格式化zookeeper

(类似删除version,格式化即可恢复)
hdfs  zkfc -formatZK
格式化journalnode目录
hdfs namenode -initializeSharedEdits

hdfs的regioninfo 信息丢失了

重启Hbase 自动恢复
如果删除hdfs /hbase/data/namespace/tablename/下的数据
分区数据+表数据+快照  =无解

hbase.id 和 hbase.version都删除 

hbase hbck -fixVersionFile无法修复version (-repair也不行)
zkcli get的hbase id 存在乱码(压缩) regionserver无法读取  
要mv /hbase /hbasebk  
然后重启Hbase 生成id 与 version  put到/hbasebk
rmr /hbase     mv /hbasebk /hbase
重启hbase  修复成功

Hbase 在hdfs上把数据删除了  

重启hbase  list没有表信息
但是重建表的时候 提示表已经存在
Hbase表信息储存在  zookeeper  hdfs  hbase:meta里
Zkcli 删除 /hbase/table/tablename
Hdfs 删除 hadoop fs -ls /hbase/data/namespace/tablename
Hbase:meta   scan 'hbase:meta', {STARTROW=>'ns_oss:pm_mr_detail_data_tbl', LIMIT=>4}
{如果查询到很多 不用一个个删 每个rowkey存放3条记录(region的信息)
delete '.META.','regionname','info:serverstartcode'
delete '.META.','regionname','info:regionserver'
delete '.META.','regionname','info:regioninfo'}
执行hbase hbck -repair  可以清楚多余的meta信息

Hbase region 合并

今天对一个表进行预分区然后导入数据后发现很多预分的region都没有数据,预分的规则不太好,然后想把那些没有数据的region合并掉,百度了一下发现hbase 有个merge工具。用法如下:
hbase  org.apache.Hadoop.hbase.util.Merge  <table_name> <region1> <region2>
具体写法如下 hbase org.apache.hadoop.hbase.util.Merge "mobile_info2" "mobile_info2,,1399621705533.378c5d38d3379e8cebeb09de0a3e60e4." "mobile_info2,13303981807,1399621705533.7bb88f85d763810601da949603464296."
注意执行该命令前需要停止hbase集群。
执行完后重新启动集群,master24:60010查看一下该表的regions,可以看到已经合并了

启动hbase的时候hbase.log显示不正常

Fri Apr 29 09:27:16 CST 2016 Starting master on nn77
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 514857
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16384
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
查看hbase.out 发现Log4绑定有异常(之前安装phoenix的时候拷贝了多余的jar包)
删除hbase/lib下的一些lib包 或者拷贝正常的lib包过来 
问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的浪漫与极端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值