HBase文件存储
HBase是基于HDFS存储文件的,所有文件与文件架构都在HDFS文件系统上
都在hbase这个目录下
这里以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
创建压缩表
create '命名空间:表名', { NAME => '列簇', COMPRESSION => '压缩方式' },SPLITS_FILE => '分割方式'