Mat*_*sen 10 hadoop hbase hdfs
鉴于HBase是一个数据库,其文件存储在HDFS中,它如何能够随机访问HDFS中的单个数据?通过哪种方法完成了?
HBase内部将您的数据放在HDFS上存在的索引"StoreFiles"中,以进行高速查找.有关HBase如何实现其目标的更多信息,请参见第5章,数据模型和本章的其余部分.
扫描这两个章节并没有揭示这个问题的高级答案.
那么HBase如何实现对存储在HDFS中的文件的随机访问?
Dav*_*vid 13
HBase将数据存储在由其密钥索引(排序)的HFile中.给定随机密钥,客户端可以确定何时从区域服务器请求该行.区域服务器可以确定从哪个区域检索行,然后通过该区域进行二进制搜索以访问正确的行.这是通过提供足够的统计数据来知道块的数量,块大小,开始键和结束键来实现的.
例如:一个表可能包含10 TB的数据.但是,该表分为4GB大小的区域.每个区域都有一个开始/结束键.客户端可以获取表的区域列表,并确定哪个区域具有它正在查找的键.区域被分解为块,因此区域服务器可以通过其块进行二进制搜索.块本质上是密钥,属性,值,版本的长列表.如果您知道每个块的起始键是什么,则可以确定要访问的文件,以及字节偏移量(块)开始读取以查看您在二进制搜索中的位置.
| 归档时间: |
|
| 查看次数: |
3378 次 |
| 最近记录: |