HBase Key-Value的组成

在HBase中,Key-Value是最小的存储单元。在这个存储单元中,每一个Key-Value对应一个列。Value对应于一个列的列值。在HBase中Key-Value都是以Byte数组的形式存储的。下面我们看一下Key-Value的具体存储格式:

KeyLength

ValueLength

RowKeyLength

RowKey

ColumnFamilyLength

ColumnFamily

Qualifier

TimeStamp

Type

Value

   在HBase中,Key-Value存储是以KeyValue类进行表示的,Key-Value共有四部分组成:Key、TimeStamp、Type和Value四部分组成。

   KeyLength:KeyLength=KEY_INFRASTRUCTURE_SIZE + RowKeyLength + ColumnFamilyLength+QualifierLength。进一步将,Key由RowKey、ColumnFamily和Quailifier三部分组成。KeyLength由这三部分的长度加上一个定长组成。

   ValueLength:ValueLength指的是value的长度。

由上面的分析我们可以知道如何获取RowKey、ColumnFamily、Qualifier、Timestamp和Value。首先,可以读取KeyLength和ValueLength。根据KeyLength一次性可以读出RowKey、ColumnFamily和Qualifier,然后再根据这三部分不同的长度依次读取各部分。TimeStamp和Type的类型分别是long和byte;读取完Key就可以读取定长的long和byte,剩余的即为value。

你可能感兴趣的:(mapreduce,hadoop,集群,hbase)