HBase HFile Explained
This is probably the most comprehensible and complete articles about how HBase is storing data:
Hadoop comes with a SequenceFile[1] file format that you can use to append your key/value pairs but due to the hdfs append-only capability, the file format cannot allow modification or removal of an inserted value. […] To help you solve this problem Hadoop has another file format, called MapFile[1], an extension of the SequenceFile. The MapFile, in reality, is a directory that contains two SequenceFiles: the data file “/data” and the index file “/index”. The MapFile allows you to append sorted key/value pairs and every N keys (where N is a configurable interval) it stores the key and the offset in the index.
Original title and link: HBase HFile Explained (©myNoSQL)
via: http://www.cloudera.com/blog/2012/06/hbase-io-hfile-input-output/