【Hbase】修改Hbase压缩方式,重启一个regionserver


一: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均衡。

你可能感兴趣的:(java,hbase,数据压缩)