gpt4 book ai didi

hadoop - HBase如何实现对HDFS的随机访问?

转载 作者:可可西里 更新时间:2023-11-01 14:11:53 25 4
gpt4 key购买 nike

鉴于 HBase 是一个数据库,其文件存储在 HDFS 中,它如何实现对 HDFS 中单个数据的随机访问?这是通过什么方法实现的?

来自 the Apache HBase Reference Guide :

HBase internally puts your data in indexed "StoreFiles" that exist on HDFS for high-speed lookups. See the Chapter 5, Data Model and the rest of this chapter for more information on how HBase achieves its goals.

浏览这两章并没有揭示这个问题的高级答案。

那么HBase是如何实现对存储在HDFS中的文件进行随机访问的呢?

最佳答案

HBase 将数据存储在 HFile 中,这些 HFile 按其键进行索引(排序)。给定一个随机键,客户端可以确定从哪个区域服务器请求行。区域服务器可以确定从哪个区域检索行,然后对该区域进行二分查找以访问正确的行。这是通过拥有足够的统计信息来了解 block 数、 block 大小、开始 key 和结束 key 来实现的。

例如:一个表可能包含 10 TB 的数据。但是,该表被分成大小为 4GB 的区域。每个区域都有一个开始/结束键。客户端可以获得表的区域列表,并确定哪个区域具有它正在寻找的键。区域被分解成 block ,这样区域服务器就可以通过它的 block 进行二进制搜索。 block 本质上是键、属性、值、版本的长列表。如果您知道每个 block 的起始键是什么,则可以确定要访问的文件,以及开始读取的字节偏移量( block )是什么,以查看您在二进制搜索中的位置。

关于hadoop - HBase如何实现对HDFS的随机访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21248903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com