Hbase在哪里存储数据?

Vij*_*nde 4 hadoop hbase nosql hortonworks-data-platform hadoop2

我是HBase的新手.目前我正在使用hortonworks沙箱hdp2.在研究Hbase时,我遇到了一些问题.

  1. hbase在哪里存储数据?

  2. 如果它存储在HDFS上,那么它如何执行更新操作,因为hdfs 写入一次并多次读取

Ama*_*ose 13

默认情况下,Hbase将数据存储在HDFS中.可以在其他分布式文件系统(如Amazon s3,GFS等)上运行HBase.我们无法编辑hdfs,但我们可以将数据附加到HDFS.HDFS支持追加功能.

HBase使用HFile作为在HDFS上存储表的格式.HFile使用行键以字典顺序存储密钥.它是用于存储键值对的块索引文件格式.索引块意味着数据存储在一系列块中,并且在文件末尾保留单独的索引以定位块.当读取请求到来时,将搜索索引以查找块位置.然后从该块读取数据.

Regionserver在memcache中维护表更新的内存副本.内存中的副本会定期刷新到光盘.HBase表的更新存储在存储重做记录的HLog文件中.在区域恢复的情况下,这些日志被应用于最后提交的HFile并重建该表的内存中图像.重建后,将内存中的副本刷新到光盘,以便光盘副本是最新的.

Hbase保留您的更新版本.早期版本将与最新版本一起保留.默认情况下,保留版本的数量为3.它是在执行更新时保存的新副本.