二倍时,可以对所有表做一次major_compact,时间比较长,操作尽量避免高锋期
注:fms现在生产上开启了自动major_compact,不需要做手动major compact 1.6 balance_switch
balance_switch true 打开balancer balance_switch flase 关闭balancer
配置master是否执行平衡各个regionserver的region数量,当我们需要维护或者重启一个regionserver时,会关闭balancer,这样就使得region在regionserver上的分布不均,这个时候需要手工的开启balance。
1.7 regionserver重启
graceful_stop.sh --restart --reload --debug nodename 进行操作前先将balancer关闭,操作完成后再打开balancer 这个操作是平滑的重启regionserver进程,对服务不会有影响,他会先将需要重启的regionserver上面的所有 region迁移到其它的服务器,然后重启,最后又会将之前的region迁移回来,但我们修改一个配置时,可以用这种方式重启每一台机子,对于hbase regionserver重启,不要直接kill进程,这样会造成在zookeeper.session.timeout这个时间长的中断,也不要通过
bin/hbase-daemon.sh stop regionserver去重启,如果运气不太好,-ROOT-或者.META.表在上面的话,所有的请求会全部失败 1.8 regionserver关闭下线
bin/graceful_stop.sh nodename
进行操作前先将balancer关闭,操作完成后再打开balancer 和上面一样,系统会在关闭之前迁移所有region,然后stop进程。 1.9 flush表
所有memstore刷新到hdfs,通常如果发现regionserver的内存使用过大,造成该机的 regionserver很多线程block,可以执行一下flush操作,这个操作会造成hbase的storefile数量剧增,应尽量避免这个操 作,还有一种情况,在hbase进行迁移的时候,如果选择拷贝文件方式,可以先停写入,然后flush所有表,拷贝文件 1.10 Hbase迁移
1.10.1 copytable方式
bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=zookeeper1,zookeeper2,zookeeper3:/hbase 'testtable'
这个操作需要添加hbase目录里的conf/mapred-site.xml,可以复制hadoop的过来。
1.10.2 Export/Import
bin/hbase
org.apache.hadoop.hbase.mapreduce.Export testtable /user/testtable [versions] [starttime] [stoptime] bin/hbase
org.apache.hadoop.hbase.mapreduce.Import testtable /user/testtable
1.10.3 直接拷贝hdfs对应的文件 首先拷贝hdfs文件,如bin/hadoop distcp hdfs://srcnamenode:9000/hbase/testtable/ hdfs://distnamenode:9000/hbase/testtable/
然后在目的hbase上执行bin/hbase org.jruby.Main bin/add_table.rb /hbase/testtable 生成meta信息后,重启hbase
2 Hadoop日常运维
2.1 监控Hadoop运行状况
1. nameNode、ResourseManager内存(namenode要有足够内存) 2. DataNode和NodeManager运行状态 3. 磁盘使用情况 4. 服务器负载状态
2.2 检查HDFS文件健康状况
命令:hadoop fsck
2.3 开启垃圾箱(trash)功能
trash功能它默认是关闭的,开启后,被你删除的数据将会mv到操作用户目录的\文件夹,可以配置超过多长时间,系统自动删除过期数据。这样一来,当操作失误的时候,可以把数据mv回来
3 本项目场景下的hbase参数调整
hbase生产配置修改.xlsx