一:hbase压缩主要分为三种
1)HFile block compression on disk:这种压缩方式主要是用在压缩存储在硬盘上的。支持Gzip、LZO、Snappy三种数据压缩。后面两种需要额外的配置和安装依赖。hbase默认提供的是第一种压缩方式。Gzip与LZO相比压缩比较高,而LZO是性能较高。
在hbase-site.xml配置压缩方式:
<property> <name>io.compression.codecs</name> <value></value> <description>A list of the compression codec classes that can be used for compression/decompression.</description> </property>
另外如果数据压缩方式配置不正确,可能会导致RegionServer无法启动,当修改配置之后需要重启habse。
检验数据压缩设置是否合适 可以使用如下命令来测试机器是否支持某种压缩方式:
./hbase org.apache.hadoop.hbase.util.CompressionTest
其中对于Snappy与LZO的安装请查看:snappy与LZO安装与设置
2)In-cache key compression:
这是在hfile中的压缩,在hfile中有些key-value中的key可能是相似或者相同的,就应该采用压缩。只对key进行压缩,对value不做操作。压缩方式可能有多种。比如按照首字母进行压缩、diff压缩
3)A custom dictionary-based write-ahead log compression :
这是在wal中的压缩。wal就是write ahead log,hbase存储就是采用日志提前写的方式。
二:重启一个regionserver
bin/graceful_stop.sh --restart --reload --debugnodename
这个操作是平滑的重启regionserver进程,对服务不会有影响,他会先将需要重启的regionserver上面的所有region迁移到其它的服务器,然后重启,最后又会将之前的region迁移回来,但我们修改一个配置时,可以用这种方式重启每一台机子,这个命令会关闭balancer,所以最后我们要在hbase shell里面执行一下balance_switch true,对于hbase regionserver重启,不要直接kill进程,这样会造成在zookeeper.session.timeout这个时间长的中断,也不要通过bin/hbase-daemon.sh stop regionserver去重启,如果运气不太好,-ROOT-或者.META.表在上面的话,所有的请求会全部失败。
关闭下线一台regionserver
bin/graceful_stop.sh --stop nodename
和上面一样,系统会在关闭之前迁移所有region,然后stop进程,同样最后我们要手工balance_switch true,开启master的region均衡。