开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天
一、本篇笔记重点内容:
- HBase权限管理
- HBase集群调度
- 配置管理及节点重启
- 日志分析
二、 详细知识点介绍
HBase集群中支持用户的授权管理,可以细粒度地针对单表、单列族、单列进行授权,权限可细分为可读、可写、可执行、可创建、可管理,分别对应READ(R)、WRITE(W)、EXEC(X)、CREATE(C)、ADMIN(A),即RWXCA。
HBase权限管理
1)分配权限
语法: grant < user> < permissions> < table> < column family> < column qualifier> 参数后面用逗号分隔
权限用五个字母表示: "RWXCA".
READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
例如,给用户‘test'分配对表t1有读写的权限,
hbase(main)> grant 'test','RW','t1'
2)查看权限
语法:user_permission
例如,查看表t1的权限列表
hbase(main)> user_permission 't1'
3)收回权限
与分配权限类似,语法:revoke < user> < table> < column family> < column qualifier>
例如,收回test用户在表t1上的权限
hbase(main)> revoke 'test','t1'
HBase集群调度
集群调度重点是资源的再分配,要经常对表进行分析,对于所涉及的Region要进行合理的调整,如果某些RegionServer服务器上的Region过多,可以动态迁移,将这些Region调整至Region数目较少的RegionServer上;对某些过大的Region文件,通过分裂,可以平衡负载;对一些Region可以归并,以对资源做更有效地利用。
1)移动region
语法:move 'encodeRegionName', 'ServerName'
encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表
示例 hbase(main)>move '4343995a58be8e5bbc739af1e91cd72d', 'db-41.xxx.xxx.org,60020,1390274516739'
2)开启/关闭region
语法:balance_switch true|false
hbase(main)> balance_switch false
3)手动split
语法1:split 'tableName'
语法2:split 'regionName', 'splitKey'
4)手动触发major compaction
语法:
压缩所有region到一个表中:hbase> major_compact 't1'
压缩整个region:hbase> major_compact 'r1'
压缩一个region内的单个列族:hbase> major_compact 'r1', 'c1'
压缩一个表内的单个列族:hbase> major_compact 't1', 'c1'
配置管理及节点重启
1)修改hdfs配置
hdfs配置位置:/etc/hadoop/conf
同步hdfs配置
cat /home/hadoop/slaves|xargs -i -t scp /etc/hadoop/conf/hdfs-site.xml hadoop@{}:/etc/hadoop/conf/hdfs-site.xml
关闭:
cat /home/hadoop/slaves|xargs -i -t ssh hadoop@{} "sudo $HADOOP_HOME/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop datanode"
启动:
cat /home/hadoop/slaves|xargs -i -t ssh hadoop@{} "sudo $HADOOP_HOME/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start datanode"
2)修改hbase配置
hbase配置位置:
同步hbase配置
cat /home/hadoop/hbase/conf/regionservers|xargs -i -t scp /home/hadoop/hbase/conf/hbase-site.xml hadoop@{}:/home/hadoop/hbase/conf/hbase-site.xml
graceful重启
cd ~/hbase
bin/graceful_stop.sh --restart --reload --debug inspurXXX.xxx.xxx.org
日志分析
在集群管理中,不可避免地要处理各类故障,分析并定位故障最好的方式,是查看日志。在HBase中,提供了Master、RegionServer等不同粒度的日志文件,通过查看日志,可以细粒度地定位各类问题。
在hbase/logs目录中,有三类日志文件:
-
q HMaster运行日志:以hbase-root-master-hostname.log文件名存放。
-
q RegionServer运行日志:以hbase-root-regionserver-hostname.log文件存放。
-
q ZooKeeper运行日志:以hbase-root-zookeeper-hostname.log文件名存放。
通过"tail -f 日志文件",可以查看日志文件。
在具体的日志文件中,有多种日志告警级别,分别为DEBUG、INFO、WARN,在运行调试期间,可以开启DEBUG,但在集群正式运行时,往往要关闭DEBUG级日志输出,调整不同级别的日志输出,通过hbase/conf/目录中的log4j.properties文件来进行。通过将参数DEBUG修改为INFO,即可以只输出INFO级以上日志信息。在集群中修改本文件后,要及时同步到其他节点,并重新启动HBase集群生效。
在不少规模较大的集群中,需要建立统一的日志服务器,进行统一的HBase日志收集、定位、分析、决策。