简介和安装
- HBase来源
- 列式数据库的优势
- HBase的意义
- HBase的安装、配置文件
客户端API:基础知识
- 基础操作Put Get Delete Scan
- Scan与Get的区别,一批记录和一条记录
- Result类和ResultScanner类
- 行锁
- 较少RPC 远程程序调用,减少网络开销
客户端API:高级特性
- 过滤器,Filter类
- get和scan可以查询数据,但是不能执行细粒度的筛选功能
- 过滤器在服务端生效,过滤的数据不会传输 给客户端,减少宽带消耗
- 过滤器在客户端创建,通过RPC传送到服务端
- CompareFilter比较过滤器、FileterBase专用过滤器
客户端API:管理功能
- Table类,对一个表操作
- Admin类,对所有表操作
- Region,RegionServer的关系
可用客户端
- 通过REST、Thrift、Avro访问HBase
- Hive支持HBase,可访问HBase数据库的数据
- 要掌握HBase Shell 编程命令
- alterdescribedisabledropenableexistsList
- 数据操作:countdeletegetputscan runcate
与MapReduce集成
- HBase的InputFormat,TableInputFromat将表拆分成大小合适的块交给Mapreduce处理
- HBase提供了一个TableMapper类
- HBase提供了一个TableReducer类
- 输出到HBase表时,可以使用TableOutputFormat类
- 第一个例子,将HBase作为数据流向
架构
- B树,B+树被关系型存储引擎广泛采用,LSM树大致为BigTable底层存储架构
- HFile格式
- HBase提供了-ROOT-和.META.,-ROOT-表用来查询.META.表中region的位置
- 类似B+树三层查找结构,第一层root region找-ROOT-,第二层-ROOT-找.META.,第三层.META.找region
高级用法
- 设计好的表结构,列名
- 一个列族一个存储文件,HBase不存储NULL值
- 含有结构信息的整个单元格为keyvalue
- 高表、宽表
集群监控
- 集群信息可视化
- 有一些软件通过监控API对MASTER,REGION,RPC进行监控
性能优化
- 本地memstore分配缓冲区
- 一旦memsotre满了,flush进入磁盘,store文件
- 当region达到阈值,拆分成两个