Matteo Bertozzi explains the HBase
HFile doesn’t know anything about key and value struct/type (row key, qualifier, family, timestamp, …). As Hadoop’ SequenceFile (Block-Compressed), keys and values are grouped in blocks, and blocks contains records. Each record has two Int Values that contains Key Length and Value Length followed by key and value byte-array.
Original title and link: HBase Internals: HFile Explained (NoSQL databases © myNoSQL)