hbase实践之HFile结构】的更多相关文章

本文目录如下所示: 目录 HFile在HBase架构中的位置 什么是HFile HFile逻辑结构 HFile逻辑结构的优点 HFile物理结构 HFile生成流程 HFile中Block块解析 多大的HFile文件才存在Intermiate Index Block HFile在HBase架构中的位置 如上图所示,HFile是HBase最底层的文件组织形式. Table --N Region --N Store --N StoreFile --HFile(StoreFile与HFile是一对一)…
Rowkey设计 Rowkey设计原则 Rowkey设计应遵循以下原则: 1.Rowkey的唯一原则 必须在设计上保证其唯一性.由于在HBase中数据存储是Key-Value形式,若HBase中同一表插入相同Rowkey,则原先的数据会被覆盖掉(如果表的version设置为1的话),所以务必保证Rowkey的唯一性 2. Rowkey的排序原则 HBase的Rowkey是按照ASCII有序设计的,我们在设计Rowkey时要充分利用这点.比如视频网站上对影片<泰坦尼克号>的弹幕信息,这个弹幕是按…
本文由  网易云发布. 作者:范欣欣 本篇文章仅限内部分享,如需转载,请联系网易获取授权. HFile是HBase存储数据的文件组织形式,参考BigTable的SSTable和Hadoop的TFile实现.从HBase开始到现在,HFile经历了三个版本,其中V2在0.92引入,V3在0.98引入.HFileV1版本的在实际使用过程中发现它占用内存多,HFile V2版本针对此进行了优化,HFile V3版本基本和V2版本相同,只是在cell层面添加了Tag数组的支持.鉴于此,本文主要针对V2版…
HFile结构 截止hbase 1.0.2版本,hfile已经有3个版本,要深入了解hfile的话,还是要从第一个版本开始看起. hfile v1 Data Block:保存表中的数据,这部分可以被压缩 Meta Block:(可选)保存用户自定义的kv对,可以被压缩. File Info :Hfile的meta元信息,不被压缩,定长. Data Block Index :Data Block的索引.每个Data块的起始点. Meta Block Index:(可选的)Meta Block的索引…
下面看下hbase:meta 表的结构,hbase:meta表中,保存了每个表的region地址,还有一些其他信息,例如region的名字,HRegionInfo,服务器的信息.hbase:meta表中每一行对应一个单一的region.例如我们现在创建一个表名叫"t".hbase:meta中对应的行会像下面这个样子. Row Column Family Column Qualifier Value t,,1351700811858 info regioninfo NAME =>…
一.HBase表的基本结构 1.概述: 平时常见的MySQL.Oracle数据库都是传统型关系数据库,它们都是按行查询.按行存储:而HBase为非关系型数据库,它是按列存储的的. 在HBase插入数据时,先输入数据的格式为rowkey => info => column => value rowkey:行键,唯一且不重复 info:列族(数量一般不超过3个) column:列(在列族下,一个列族下可有许多个列) value:值 timestamp:时间戳 cell:单元格 表的基本结构如…
0 引言 和其他数据库一样,优化IO也是HBase提升性能的不二法宝,而提供缓存更是优化的重中之重. 根据二八法则,80%的业务请求都集中在20%的热点数据上,因此将这部分数据缓存起就可以极大地提升系统性能. HBase在实现中提供了两种缓存结构:MemStore和BlockCache.其中MemStore称为写缓存,HBase执行写操作首先会将数据写入MemStore,并顺序写入HLog,等满足一定条件后统一将MemStore中数据刷新到磁盘,这种设计可以极大地提升HBase的写性能.不仅如此…
hbase基本存储组织结构与数据读取组织结构对比 Segment是Hbase2.0的概念,MemStore由一个可写的Segment,以及一个或多个不可写的Segments构成.故hbase 1.*版本中的MemstoreScanner变成了SegmentScanner. 对应关系表 Hbase存储结构 Hbase Scanner体系 Region RegionScanner Store StoreScanner Memstore SegmentScanner(memstore级别) Store…
keyvalue KeyValue中包含了丰富的自我描述信息: KeyValue是支撑"稀疏矩阵"设计的一个关键点:一些Key相同的任意数量的独立KeyValue就可以构成一行数据.但这种设计带来的一个显而易见的缺点:每一个KeyValue所携带的自我描述信息,会带来显著的数据膨胀. 为什么rowkey不能太长?columnfamily.qualifiter尽量短? 行级事务模型 写写并发控制 包括单行.批量多行. 单行:行锁 多行:两阶段锁协议,即: (1) 获取所有待写入(更新)行…
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.ap…