hbase中如何读取数据?

htzpubme  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(374)

我们知道hbase部署在hadoop和hdfs之上。另外,我们知道,当我们要从hdfs读取文件(或记录)时,使用hdfs cli需要相当长的时间。
但即使hbase使用hdfs,它也能够在几毫秒内读取密钥。这是怎么发生的?

rks48beu

rks48beu1#

我认为原因包括:
数据被拆分到不同的区域服务器。客户端可以从元表中获取区域服务器,直接与hbase区域服务器进行通信。
区域服务器与hdfs datanodes并置,这使得区域服务器所服务的数据具有数据局部性(将数据放在需要的位置附近)。
hfile包含一个多层索引,允许hbase查找数据而不必读取整个文件。
hbase首先从blockcache和memstore中读取数据,如果在blockcache或memstore中可以找到数据,则hbase不需要从hdfs中读取hfiles。

相关问题