HBase学习笔记

1.Hbase是一个用java语言实现的,构建于Hadoop分布式系统(HDFS)上的分布式数据库。

2.HBase的特点:

  a:海量存储

  b:列式存储(可以针对列进行权限控制和读取)

  c:多版本:根据时间戳存储不同版本的数据

  d:稀疏性:

        1. 为空的列不占用实际存储空间

         2.传统数据库为空的列依然要占用存储空间

  e:高扩展,高可用性:底层基于HDFS,高可用和扩展性得到了保障。

3.HBase中表结构模型

  a:表(table):用于存储管理数据,具有稀疏性,面向列的特点。

  b:行键(RowKey):类似于MYSQL中的主键,HBase根据行键来快速检索数据,一个行键对应一条记录。与MYSQL主键不同的是,HBase的行键是天然固有的,每一行数据都存在行键。

  c:列簇(ColumnFamily):是列的集合。列族在表定义是需要指定,而列在插入数据是动态指定。列中的数据都是以二进制的形式存在,没有数据类型。

 d:时间戳(TimeStamp):是列的一个属性,是一个64位整数。由行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。可以根据版本或时间戳来指定查询历史版本数据,如果都不指定,则默认返回最新版本的数据。

4.HBase系统架构

可以看出HBase需要依赖Zookeepeer和HDFS。

  a:Zookeeper

      1:保证任何时候,集群中只有一个running master,避免单点问题;

       2:存储所有Region的寻址入口,包括表地址,HMaster地址;

      3:实时监控Region Server的状态,将Region Server的上线和下线信息,实时通知通知给Master;

     4:存储Hbase的schema,包括有哪些table,每个table有哪些column family

  b:Master:可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行。

  c:RegionServer:HBase中最核心的模块,主要负责响应用户的I/O请求,向HDFS文件系统中读写数据。

  d:HDFS:负责存储数据。

     

  

 

posted @ 2018-11-22 11:26  煮酒一笑观花  阅读(114)  评论(0编辑  收藏  举报