合并storefile的过程称为Compaction过程,主要过程是合并由memStore的flush操作产生的部分或者所有StoreFile,主要有以下几个作用:
1)合并文件。由于zhidaoflush的触发是回针对所有memStore,所以缓存有些记录不多的memStore flush之后的结果是很多小文件。Compaction操作可以合并这些小文件,减小对StoreFile的维护成本。
2)清除删除、过期、多余版本的数据。由于HBase所有写入的数据都是不可修改的,所以对数据的修改操作就是添加一条新的记录,原数据仍保存在StoreFile中;而删除操作是添加一个删除的标识。Compaction操作可以整合这些信息,减少磁盘空间的占用。
Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. --来自Apache HBase官网 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储
打开工作目录中的store.txt文件,并把文件游标放在文件结尾当向文件写入数据时,数据会在以文件结尾处为起点添加,即写入的数据都添加到了文件,而没有改变文件中已有的内容