厦门大学林子雨开设的《大数据技术原理与应用》第三章分布式数据库HBase数据库笔记

HDFS:分布式文件系统
HBase:分布式数据库,存储半结构化或非结构化数据,并且提供了高效放到访问它是Google的BigTable的开源实现.BigTable建立在谷歌分布式文件系统GFS上,协同管理服务——Chubby

Chubby的开源实现:Zookeeper,分布式协调管理框架

Hadoop MapReduce:分布式计算框架。

HBase底层实现:

  • 文件存储系统:HDFS
  • 海量数据计算:Hadoop MapReduce
  • 协同管理:Zookeeper

大数据/云计算模式:
批处理计算(离线计算):小时级响应, e.g Hadoop(HDFS,MapReduce)
实时分析(流数据):毫秒、秒级响应 e.g Storm 、 Flume、 S4
交互计算(在线计算):秒级、分钟级响应 e.g HBase

HBase和传统的关系型数据库(计算可扩展性差、数据库定义可扩展性差、只能纵向扩展)的区别和联系:

  1. HBase基于列存储
  2. HBase只支持对行键的简单索引
  3. HBase不会把旧的值覆盖,只是新建一个时间戳
  4. HBase水平扩展很容易

HBase访问接口:

  • 提供了一个原生的JAVA API
  • Shell命令
  • 提供了SQL类型接口 e.g pig
  • 数据仓库产品Hive——直接用SQL语句访问


HBase:
行键、列族、列(限定符)、时间戳四个元素来确定一个单元格的值

行式存储:高事务处理效率 适用OLTP(联机事务处理)
列式存储:高压缩率(一列的数据类型是一样的)、高查询效率、比较适合进行OLAP(联机分析处理)
HTAP:混合行列存储


HBase的功能组件:(一主多从的架构)
库函数(用于链接客户端)
Master服务器(主)
Region服务器(从):数据的存取 维护和管理
一个HBase表被划分成多个Region,一个Region会分裂成多个新的Region(一个Region最佳配置为1GB-2GB)
同一个Region不会被拆分到不同的服务器 一个服务器大约有1000个Region

HRegionServer存储结构:
包括10 - 1000个Region和一个HLog,每个Region包括:MemStore、StoreFile(HFile)

HBase设计了三层,实现寻址和定位
元数据表:两列分别为Region id -> Region server(放在.Meta文件-映射表,存放元数据)
随着数据的增多,.Meta文件也会增大
.ROOT:META Region id -> Region Server(最多只有一个Region)

Zookeeper -> .ROOT -> .META -> 记录表的Region信息

HBase的寻址访问:
.Meta:Data Region id -> Region Server
.Root:Root id -> Meta Region id

为了加速寻址,客户端会缓存位置信息,同时,需要解决缓存失效问题。若缓存失效,重新三层寻址。

HBase架构:

  • 客户端:提供HBase的访问接口;
  • Zookeeper:提供集群的协调管理服务;
  • HMaster:元数据管理;数据的管理(增删改查请求,负载均衡、Region的管理)
  • HRegionServer:提供了实际数据的读写访问

猜你喜欢

转载自www.cnblogs.com/zxgCoding/p/12701180.html