本文共 1436 字,大约阅读时间需要 4 分钟。
HBase 是一个高可靠性、高性能、面向列簇、可伸缩的海量Nosql数据库,支持对数据的实时增删查改。同Hadoop一样,HBase同样构建在廉价PC Server集群上,仅需使用普通的硬件配置,就能够处理成千上万的行和列所组成的海量数据。
HBase 的原型是 Google 的 BigTable 论文,受到了该论文思想的启发,目前作为 Apache
的顶级项目来开发维护,用于支持结构化的数据存储。特点:
针对海量数据:Hbase 适合存储 PB 级别的海量数据,单表可以轻松达到数十亿行。
面向列簇:Hbase 是根据列簇来存储数据。
易扩展:HBase存储依赖HDFS,处理能力可以通过添加机器来扩展RegionServer的处理能力。
支持高并发:HBase采用分区以及负载均衡的技术,可以实现很好的读写性能。
不支持SQL:同几乎所有的Nosql一样,原生不支持SQL语句。
HBase以表的形式存储数据,表由行和列组成。列划分为若干个列族,如下图所示:
Table(表):一个表可以有很多行。 Row(行):hbase中一行由一个Rowkey和很多列组成,所有的行的Rowkey是二进制有序的。 Column(列):列类似关系数据库表中的属性,列是可以随意定义的,一个行中的列不限名字、不限数量。 Column Family(列簇):一个列簇包含多个列,考虑到性能的原因,一个列簇里的所有数据会被统一存储。Cell(单元格):一个列中可以存储多个版本的数据,而每个版本就称为一个单元格。
Timestamp(时间戳):一个列中可以有多个cell,那么怎么区别这些cell呢,这里就引入了时间戳,其实也可以理解为版本。
HregionServer
Zookeeper
HRegion
Store
MemStore
写入到每个Store的数据并不是会马上写入HDFS,首先数据会被存储在MemStore,每个Store都有一个MemStore。只有当MemStore达到阈值大小或者人工强制flush时数据才会落地到HDFS上。StoreFile
每个MemStore落地到HDFS时,每次都会生成一个StoreFile。StoreFile就是一个HFile文件。HFile是HBase特有的文件存储格式。HLog
转载地址:http://decmb.baihongyu.com/