我只是在了解Hbase。
假设我在找一个给定的行号。客户端通过查找动物园管理员、根文件和相应的元文件来查找存储行id的区域服务器和区域。到目前一切尚好。
( A)该区域可能有许多hfile,其中包含一行的单元格(Id),对吗?例如,{row-id-1,col id-1,col id-1,val1}可以存储在hfile-1中,{row-id-1,col id-1,could 2,val1}可以存储在hfile-2中.请注意,这是相同的。
当我要求一个特定的行id时,HBase会查找商店中的所有hfile来编译该行id的所有单元格吗?
发布于 2014-09-23 17:06:33
( A)该区域可能有许多hfile,其中包含一行的单元格(Id),对吗?例如,{row-id-1,col id-1,col id-1,val1}可以存储在hfile-1中,{row-id-1,col id-1,could 2,val1}可以存储在hfile-2中.请注意,这是相同的。
实际上,所有列族成员都存储在文件系统上。由于调优和存储规范是在列族级别进行的,因此建议所有列族成员具有相同的通用访问模式和大小特征。单个列族中的所有单元格都存储在单个HFile中。
当我要求一个特定的行id时,HBase会查找商店中的所有hfile来编译该行id的所有单元格吗?
如果您在同一个查询中查找来自不同列家族的列(这是不可取的),那么Hbase将为您处理这个问题。
关键是每个刷新新文件都是创建的。由于最初的写入发生在WAL上,所以WAL写的速度很快,并且在刷新时创建了一个新的HFile。
下面的链接将详细解释:HBase内件
https://stackoverflow.com/questions/25999965
复制相似问题