【发布时间】:2015-11-17 11:33:59
【问题描述】:
我是 HBase 新手。目前我正在使用 hortonworks 沙箱 hdp2。在学习 Hbase 的过程中,遇到了一些问题。
hbase 在哪里存储数据?
如果它存储在 HDFS 上,那么它如何执行更新操作,因为 hdfs 是一次写入多次读取
【问题讨论】:
标签: hadoop hbase hadoop2 hortonworks-data-platform nosql
我是 HBase 新手。目前我正在使用 hortonworks 沙箱 hdp2。在学习 Hbase 的过程中,遇到了一些问题。
hbase 在哪里存储数据?
如果它存储在 HDFS 上,那么它如何执行更新操作,因为 hdfs 是一次写入多次读取
【问题讨论】:
标签: hadoop hbase hadoop2 hortonworks-data-platform nosql
默认情况下,Hbase 将数据存储在 HDFS 中。可以在 Amazon s3、GFS 等其他分布式文件系统上运行 HBase。我们不能编辑 hdfs,但我们可以将数据附加到 HDFS。 HDFS 支持追加功能。
HBase 使用 HFile 作为将表存储在 HDFS 上的格式。 HFile 使用行键按字典顺序存储键。它是一种用于存储键值对的块索引文件格式。块索引意味着数据存储在一系列块中,并在文件末尾维护一个单独的索引来定位块。当一个读请求到来时,在索引中搜索块位置。然后从该块中读取数据。
Regionserver 在内存缓存中维护表更新的内存副本。内存中的副本会定期刷新到磁盘。 HBase 表的更新存储在存储重做记录的 HLog 文件中。在区域恢复的情况下,这些日志将应用于最后提交的 HFile 并重建表的内存中映像。重建后,内存中的副本被刷新到磁盘,以便磁盘副本是最新的。
Hbase 保留您的更新版本。早期版本将与最新版本一起保留。默认情况下,保留版本的数量为 3。这是一个新副本,在您执行更新时会被保存。
【讨论】: