HBase存储在HDFS上目录结构;HBase表中的数据压缩配置

HBase文件存储

HBase是基于HDFS存储文件的,所有文件与文件架构都在HDFS文件系统上
都在hbase这个目录下
HBase存储在HDFS上目录结构;HBase表中的数据压缩配置_第1张图片

这里以1.2.0为例介绍,目录如下:

/hbase/.tmp
/hbase/WALs
/hbase/archive
/hbase/corrupt
/hbase/data
/hbase/hbase.id
/hbase/hbase.version
/hbase/oldWALs

1、/hbase/.tmp

这个目录不变还是原来的tmp目录,作用是一样的。

2、/hbase/WALs

这里对应0.94的.logs 目录,取名为 WALs 更加见名知意了,点个赞!

3、/hbase/archive

和0.94一样,只是去掉了.而已,估计是作者不想把它作为一个隐藏文件夹了吧

4、/hbase/corrupt

和0.94一样,去了.

5、/hbase/data

这个才是 hbase 的核心目录,0.98版本里支持 namespace 的概念模型,系统会预置两个 namespace 即:hbase和default

5.1 /hbase/data/default

 这个默认的namespace即没有指定namespace 的表都将会flush 到该目录下面。

5.2 /hbase/data/hbase

 这个namespace 下面存储了 HBase 的 namespace、meta 和acl 三个表,这里的 meta 表跟0.94版本的.META.是一样的,自0.96之后就已经将 ROOT 表去掉了,直接从Zookeeper 中找到meta 表的位置,然后通过 meta 表定位到 region。 namespace 中存储了 HBase 中的所有 namespace 信息,包括预置的hbase 和 default。acl 则是表的用户权限控制。
 如果自定义一些 namespace 的话,就会再/hbase/data 目录下新建一个 namespace 文件夹,该 namespace 下的表都将 flush 到该目录下。

6、/hbase/hbase.id

 它是一个文件,存储集群唯一的 cluster id 号,是一个 uuid。

7、/hbase/hbase.version

 同样也是一个文件,存储集群的版本号,貌似是加密的,看不到,只能通过web-ui 才能正确显示出来。

8、/hbase/oldWALs

这里对应0.94的.oldlogs 目录,取名为 oldWALs 是不是更好了呢!
原文链接
https://www.cnblogs.com/nexiyi/p/hbase_on_hdfs_directory.html

HBase表中的数据压缩配置

可以参考官方文档进行配置
http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.7.6/book.html#compression

查看HBase支持哪些压缩格式

bin/hbase org.apache.hadoop.util.NativeLibraryChecker

修改HBase中的配置文件hbase-site.xml

(1)Compressor Support On the Master. 主机上的压缩机支持

(2)Enforce Compression Settings On a RegionServer 在RegionServer上强制执行压缩设置

加入下面的配置信息
HBase存储在HDFS上目录结构;HBase表中的数据压缩配置_第2张图片
注意:修改了配置文件,需要重启HBASE

创建压缩表

create '命名空间:表名', { NAME => '列簇', COMPRESSION => '压缩方式' },SPLITS_FILE => '分割方式'

你可能感兴趣的:(HBase)