【DataWhale组队学习】大数据处理导论笔记-3

分布式数据库HBase

Hadoop的局限

Hadoop只能进行批处理,且只能以顺序方式访问数据,无法对数据库进行随机访问

数据结构的分类:

  • 结构化数据:以关系型数据库表形式管理的数据
  • 半结构化数据:具有非关系型模型、基本固定结构模式的数据,如日志文件、XML文档
  • 非结构化数据: 没有固定模式的数据,如word、pdf。

数据库:关系型数据库(Mysql)、键值存储数据库(Redis)、列存储数据库(HBase)、面向文档数据库(MongoDB)、图形数据库(Neo4J)、搜索引擎数据库(Solr)

HBase 与传统关系型数据库的区别:

  • 数据类型: 关系型数据库数据类型较为丰富(int、date、long等),Hbase数据类型较为简单,都被存储为未经解释的字符串
  • 数据操作:关系型数据库存在增删改查 联表 等操作,效率较低,Hbase不会把数据充分规范化,避免低效的连接操作。
  • 存储模式:关系型数据库采用行存储,Hbase基于列存储
  • 数据索引:关系型数据库可对不同列构造复杂索引结构,Hbase支持对行索引
  • 数据维护:更新操作时,关系型数据库会把数据替换掉,Hbase会保留旧版本数据一段时间,到一定期限后才到后台清理数据
  • 可伸缩性:关系型数据库很难实现水平扩展,Hbase采用分布式集群存储,水平扩展性较好

HBase简介

HBase是构建在Hadoop文件系统上高可靠、高性能、面向列、可伸缩分布式数据库,主要用来存储非结构化和半结构化数据。HBase提供对Hadoop文件系统的数据进行随机实时读写访问。

数据模型相关概念
  • 表:表由行和列组成,列划分为多个列族
  • 行:每个行由行键来标识
  • 列族(column family): 在创建完列族以后,就可以使用同一个列族当中的列。列名都以列族作为前缀。例如,courses:historycourses:math这两个列都属于courses这个列族。
  • 列限定符:列族内数据通过列限定符来定位
  • 单元格:通过行、列族、列限定符定位单元格
  • 时间戳:多个版本采用时间戳进行索引。

数据坐标:[行键,列祖,列限定符,时间戳]

HBase的实现原理
HBase功能组件

HBase的实现包含三个主要的功能组件:库函数(用于连接到每一个客户端)、一个master主服务器、许多个region服务器

Region:由于HBase表中包含行的数量可能非常庞大,无法存储在一台机器上,需要分布存储到多台机器上,因此需要根据行键的值对表中的行进行分区,每个行区间构成的分区称为region。

-ROOT-表/根数据表:记录所有元数据的具体位置,①-ROOT-表是不能被分割的,永远只存在一个Region用于存放-ROOT-表②用来存放-ROOT-表的唯一一个region,其名字是在程序中被写死的,Master主服务器永远知道它的位置。

HBase运行机制

HBase系统架构
  • 客户端:客户端包含访问HBase的接口,同时在缓存中维护已访问过的region位置信息,以加快后续数据访问过程
  • Zookeeper服务器:选举一个Master作为集群总管,保证任意时刻都有一个master在运行,避免master”单点失效“问题
  • master服务器:负责表和region的管理工作:管理用户对表的增删改查等操作/实现不同region服务器的负载均衡/在region分裂或合并后,重新调整region分布/对发生故障的region进行迁移
  • region服务器:HBase中最核心的模块,负责维护自己的region并相应用户的读写请求。
region服务器的工作原理
  1. 用户读写数据的过程

    • 用户写入数据时,被分配到相应region去执行
    • 数据首先被写入到Memstore和Hlog中
    • 当操作写入Hlog后,调用commit()将其返回给客户端
    • 读取数据时,region服务器首先访问memstore缓存,如果找不到再到磁盘的storefile找
  2. 缓存的刷新

    • 系统周期性的把Memstore缓存内容写到磁盘的storefile中,清空缓存并再Hlog内写入标记
    • 每次刷写都生成新的storefile文件,故每个store包含多个storefile文件
    • 每个region都有自己的hlog文件,每次启动都检查该文件,发现更新先写入menstore,再刷写到storefile,然后删除旧的hlog文件。
  3. storefile合并

    • 调用store.compact()将多个storefile合并成一个,增加查找速度。
    • 只有数量达到一定阈值后才启动合并,因为合并操作耗费资源。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值