HBase|青训营笔记

153 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第14天

今天带来的是HBase...

特性

Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型,辅助索引,触发器,和高级查询语言等待。那Hbase有什么特性呢?如下:

  • 强读写一致,但是不是“最终一致性”的数据存储,这使得它非常适合高速的计算聚合
  • 自动分片,通过Region分散在集群中,当行数增长的时候,Region也会自动的切分和再分配
  • 自动的故障转移
  • Hadoop/HDFS集成,和HDFS开箱即用,不用太麻烦的衔接
  • 丰富的“简洁,高效”API,Thrift/REST API,Java API
  • 块缓存,布隆过滤器,可以高效的列查询优化
  • 操作管理,Hbase提供了内置的web界面来操作,还可以监控JMX指标

适用场景

  • “近在线”的海量分布式KV/宽表存储,数据量级达到百TB级以上
  • 写密集型应用,高吞吐,可接受一定的时延抖动
  • 需要按行顺序扫描的能力
  • 接入Hadoop大数据生态
  • 结构化、半结构化数据,可以经常新增/更新列属性
  • 平滑的水平扩展

Hbase架构

image.png

  • Zookeeper,作为分布式的协调。RegionServer也会把自己的信息写到ZooKeeper中。

  • HDFS是Hbase运行的底层文件系统

  • RegionServer,理解为数据节点,存储数据的。

  • Master RegionServer要实时的向Master报告信息。Master知道全局的RegionServer运行情况,可以控制RegionServer的故障转移和Region的切分。

功能

Bulkload

大批量向HBase导入数据的功能。使用MapReduce任务直接生成底层存储的HFile文件,并直接移动到HBase存储目录下,节省HBase写路径的开销从而提高写入效率。

Coprocessor

提供一套接口框架,给HBase原生接口添加类似lifecycle hook函数的能力,用来执行用户自定义的功能来扩展HBase的能力,例如二级索引、Observer等功能。

Filter

将用户的过滤逻辑下推到HBase服务端,避免无用数据传输处理开销来提高查询效率。

MOB

Medium Object Storage解决HBase对中等大小对象(10-100MB)的低延迟读写支持,拓宽HBase适用场景。

Snapshot

数据备份功能,将某一时刻的数据以及元数据备份,用于数据恢复、快照读、复制表等功能。

Replication

将一个HBase集群中的数据复制到目标HBase集群,使用WAL将变更记录同步到其他集群。