hbase和hadoop运维操作

hbase shell管理操作

1、使用flush命令可将表中所有区域的数据都写入磁盘

1
hbase(main):002:0> flush 'usertable'

2、单独将表的某个区域的数据写入磁盘

1
hbase(main):006:0> flush 'usertable,user3078440486144287982,1408008575537.c018c1bb15879c1c3aea12239e8f0c08.'

3、使用compact命令可对指定表的所有区域进行合并

1
hbase(main):003:0> compact 'usertable'

4、使用major_compact命令可对指定表进行主合并

1
hbase(main):004:0> major_compact 'usertable'

5、使用balance_switch命令来启用/关闭负载均衡功能

1
2
hbase(main):008:0> balance_switch true
hbase(main):008:0> balance_switch false

6、使用balancer命令来对集群进行负载均衡

1
hbase(main):009:0> balancer

7、执行split命令对表的指定区域进行分割

1
hbase(main):004:0> split 'usertable,,1408008575537.485eb84ae427530a3f50351928b3826c.'

8、计算表行数

1
2
3
./bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter  'usertable'

./bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter -Dfs.defaultFS=file:/// 'usertable'

9、使用hbck命令检查集群的健康情况

1
./bin/hbase hbck

10、 hbase集群管理操作
平稳关闭regionserver

1
2
./bin/graceful_stop.sh hostname
hbase(main):004:0> balance_switch true

使用平稳关闭regionserver,在真正关闭区域服务器守护程序之前,graceful_stop.sh脚本会首先关闭hbase的负载均衡功能,因此如果关闭后还需要使用负载均衡功能,可以显示地重新启动它

11、 滚动重启
在将hbase升级到新版本或想让某些配置修改生效时,可能需要进行滚动重启。以下是实现滚动重启的步骤

1、运行hbck检查集群是否处于一致状态
./bin/hbase hbck
2、重启master
./bin/hbase-daemon.sh stop master
./bin/hbase-daemon.sh start master
3、关闭region负载均衡功能
hbase(main):001:0> balance_switch false
4、在每个region服务器上运行graceful_stop.sh脚本

开启一个screen,执行以下命令
for i in `cat conf/regionservers`;do echo $i;./bin/graceful_stop.sh --restart --reload --debug $i;done  > /tmp/log.txt
5、启动region负载均衡功能
hbase(main):003:0> balance_switch true
6、运行hbck确认集群是否属于一致状态
./bin/hbase hbck

12、 hbase新增服务器
新增hmaster
./bin/hbase-daemon.sh start master
新增regionserver
./bin/hbase-daemon.sh start regionserver

hadoop shell管理操作

1、 检查namenode是否处于安全模式

1
2
[hadoop@hostname /home/q/hadoop/hadoop-2.3.0-cdh5.1.0]$ ./bin/hdfs dfsadmin -safemode get
Safe mode is OFF

2、 离开安全模式

1
[hadoop@hostname /home/q/hadoop/hadoop-2.3.0-cdh5.1.0]$ ./bin/hdfs dfsadmin -safemode leave

3、 检查hdfs是否正常

1
[hadoop@hostname /home/q/hadoop/hadoop-2.3.0-cdh5.1.0]$ ./bin/hdfs fsck  /

4、 移除 missing block

[hadoop@hostname /home/q/hadoop/hadoop-2.3.0-cdh5.1.0]$ ./bin/hdfs fsck  -delete
或者
./bin/hdfs fsck -move