Hbase内核的原理和机制
列式存储
1.概念: 列式存储-以列为单位聚合数据 Hbase以列式存储的格式在磁盘存储数据
2.目的: 高效的检索和更新
3.基于这样的假设:
对于特定的查询,不是所有的值都是必须的,尤其是在分析型数据库中,所以减少I/O
基于列式存储更恶意大幅度提高压缩比,有利于返回结果时降低带宽的消耗
4.使用场景:
比较适合键值对的数据存储以及有序数据的存储
Hbase基本介绍
基本概念
数据模型 存储模型 物理模型 压缩
读写性能 原子的操作-读-写-修改
加锁 等待 死锁
负载均衡 故障恢复
组件:
主服务器 Region服务器 客户端
分布式协调器: Zookeeper
构成:
表 Table
列簇 column family
行 Row rowkey
列 column
单元格 cell 时间戳 timestamp
region
操作:
没有提供查询数据的特定域语言,比如没有提供SQL语言
API: 创建表/增加列族 删除表/删除列族 修改表和列族元数据 查找
底层原理:
文件结构: HFile 文件
MemStore
预写日志 Write-ahead log WAL
删除标记
Hbase详细介绍
基本命令: list put get scan delete disable drop exit
批量处理
行锁: row lock Bytes类
高级特性: filter comparator
设计
1.行键设计:Row key设计
高表 tall-narrow table
宽表 flat-wide table
处理方式:
将行键时间序列
将行键随机化
2.版本管理
Hbase配置
选择操作系统、文件系统,运行模型
1.配置Hbase: conf/hbase-env.sh
conf/hbase-site.xml
2.集群监控
3.性能优化
分配区缓存
垃圾回收优化
压缩 snappy
优化拆分和合并
region热点
Hbase数据结构
Hbase中使用 LSM树 Log-Structure Merge Tree 。 相关使用Btree 以及 B+tree 查找和传输
HFile 文件格式