导读:hbase的数据存储在哪的? HBase的数据主要存储在Hadoop的HDFS文件系统上,主要包括两种文件类型:HFile和HLogFile。 1. HFile:HBase中KeyValue数据的存储格式,......
hbase的数据存储在哪的?
HBase的数据主要存储在Hadoop的HDFS文件系统上,主要包括两种文件类型:HFile和HLogFile。
1. HFile:HBase中KeyValue数据的存储格式,是Hadoop的二进制格式文件。HFile是不定长的,长度固定的只有其中的两块:Trailer和FileInfo。Trailer中有指针指向其他数据块的起始点,FileInfo中记录了文件的一些Meta信息。DataBlock是HBaseI/O的基本单元,每个Data块的大小可以在创建一个Table的时候通过参数指定。每个Data块除了开头的Magic以外就是一个个KeyValue对拼接而成。
2. HLogFile:HBase中WAL(WriteAheadLog)的存储格式,物理上是Hadoop的SequenceFile。HLog文件就是一个普通的HadoopSequenceFile,SequenceFile的Key是HLogKey对象,HLogKey中记录了写入数据的归属信息,包括table和region名字,sequencenumber和timestamp等。
HBase的数据存储在HDFS上,可以通过简单的调用HDFS的API来创建文件。HDFS足够聪明,它知道如何将文件写到最合适的地方,使得RegionServer用起来最方便。
版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、