Hbase应用 掌握–即可
- Hbase适用于存储稀疏型数据,常用于用户画像 + 推荐系统
- 关于表的基本操作
原理架构 掌握–即可
- 数据模型
- 1-命名空间
- 2-region,类似于数据表
- 3-store 对应列族
- 4-column 对应列
- 5-timestamp 时间戳 ,Hbase插入数据按照时间戳给定版本
- 6-version 需要保存的历史版本号
Hbase的原理深入
- 1-Hbase 的Client 如何理解和ZK以及Hbase 交互?
- Clinet三次握手
- 1-Client跟Zk握手,meta-region-server存储meta表位置
- 2-client跟meta表存储regionServer通信获取数据读写位置
- 3-client周到对应的regionServer读写
- Clinet三次握手
- 2-Hbase的写原理
- 先写入Hlog中,记录了操作信息
- 在写入Memstore中
- 达到刷写阈值,刷写storefile(逻辑结构)HFile(物理结构)
- Compaction合并
- 3- Hbase的查询
- 1-先从memstore找
- 2-BlockCache中找
- 3-HFile,如果找到缓存到BlockCache中
- 4-MemStore什么时候溢写磁盘
- 1-从memstore层面
- 默认128M -最大128*4
- 1个小时
- 2-从ewgionserver层面
- javaheap jvm 堆内存
- javaheap*0.4 最大阈值
- javaheap0.40.95=javaheap*0.38 溢写最小阈值
- 1-从memstore层面
- 5- Compaction分为几类?
* major : 大合并 ,默认7天,生产环境关闭 设置为 0,会删除数据,触发大量 IO
* Minor:小合并, 3-10文件 不会删除数据 - 6 -region分裂
* Min ( r 的平方 * 128M < 10 G )
* 当 r = 9 个region的时候已经大于10G了 往后都按10G分裂 - 7-Hbase协处理器
- observer : 类似于mysql中的触发器,zookeeper中的监听器,主要的作用是当执行被监听的一个操作的时候可以触发另一个我们需要的操作的依赖关系,比如说监听数据库数据的增删过程,我们可以在hbase数据库插入数据或者删除数据之前或之后进行一系列的操作
- Endpoint : Endpoint 协处理器类似传统数据库中的存储过程,客户端可以调用这些 Endpoint 协处理器执行一段 Server端代码,并将Server 端代码的结果返回给客户端进一步处理,最常见的用法就是进行聚集操作。