在查找单元格时,HBase是否会查看商店中的所有HFile

时间:2014-09-23 16:17:29

标签: java hbase

我刚学习Hbase。

假设我正在寻找给定的行ID。客户端找到region-server&通过查找zookeeper,root文件&存储行id的区域。相应的元文件。到目前为止一切都很好。

A)该区域可能有许多hfiles包含行id的单元格 - 是吗? 例如,{row-id-1,col-fam-id-1,col-id-1,val1}可以存储在hfile-1和{row-id-1,col-fam-id-1,col中-id-2,val1}可以存储在hfile-2中。 请注意col-fam是相同的

B)当我要求一个特定的行id时,HBase会查找商店中的所有hfiles来编译该行id的所有单元吗?

1 个答案:

答案 0 :(得分:0)

  

A)该区域可能有许多hfiles包含行id的单元格 - 是吗?例如,{row-id-1,col-fam-id-1,col-id-1,val1}可以存储在hfile-1和{row-id-1,col-fam-id-1,col中-id-2,val1}可以存储在hfile-2中。请注意,col-fam是相同的

从物理上讲,所有列族成员都存储在文件系统中。由于调整和存储规范是在列族级别完成的,因此建议所有列族成员具有相同的通用访问模式和大小特征。单列族中的所有单元存储在单个HFile中。

  

B)当我要求一个特定的行id时,HBase会查找商店中的所有hfiles来编译该行id的所有单元吗?

如果您在同一查询中查找来自不同列族的列(这是不可取的),那么Hbase将为您处理。

关键是要创建每个刷新新文件。由于写入最初发生在WAL写入很快并且在刷新点处创建新的HFile。

以下链接详细说明:HBase Internals