HBase 數據讀寫過程描述 我們熟悉的在 Hadoop 使用的文件格式有許多種,例如: Avro:用於 HDFS 數據序序列化與 Parquet:常見於 Hive 數據文件保存在 HDFS中 HFile HFile 是 HBase 使用的一種柱狀存儲文件,非常適合隨機和實時讀寫。 HFile 文件 ...
HBase 數據讀寫過程描述
我們熟悉的在 Hadoop 使用的文件格式有許多種,例如:
Avro:用於 HDFS 數據序序列化與
Parquet:常見於 Hive 數據文件保存在 HDFS中
HFile
HFile 是 HBase 使用的一種柱狀存儲文件,非常適合隨機和實時讀寫。
HFile 文件的頭部記載 FileInfo 和 Meta 這是元數據。在啟動 RegionServer 後每一個RegionServer 節點會將本地 DataNode 保存的 HFile 文件中的 FileInfo 和 Meta 載入到自身 JVM 的 memstore (元數據記憶體空間)中。
read:對數據的讀則由 memstore 檢索存儲的元數據,將 Data 塊載入到 RegionServer JVM 中的 Data 記憶體空間。現在常用的 HFile v2 只需要將需要的元數據信息載入到記憶體中即可
write:每次寫入都會在 memstore 中添加信息,而不是寫入 HFile 中,只有 memstore 存儲空間不夠時,元數據信息才會被刷回 HFile 中。
HFile 自身已經對 HBase 中存儲數據進行壓縮。
參考:http://blog.cloudera.com/blog/2012/06/hbase-io-hfile-input-output/