学习目标:
- 大数据技术原理与应用
学习内容:
- 分布式数据库HBase
- 4.1HBase简介
- 4.2HBase数据模型
- 4.3HBase实现原理
- 4.4HBase运行机制
- 4.5HBase应用方案
- 4.6安装与实践
学习时间:
2022/03/24
学习产出:
4.1HBase简介
- BigTable的开源实现
- 高可靠 高性能 面向列 可伸缩
- 分布式数据库 用来存储结构化和半结构化的松散数据
- 文件存储系统:HDFS
- 海量数据处理:Hadoop MapReduce
- 协同管理服务:Zookeeper
- 访问接口:(1)原生Java API --Shell/Thrift Gateway/REST Gateway
(2)提供SQL类型接口 --Pig/数据仓库产品Hive
4.2HBase数据模型
-
一个稀疏的多维度的排序的映射表
-
列族:支持动态扩展、保留旧的版本
-
列限定符(列)
-
单元格(具体存储数据的地方)
-
时间戳
-
数据坐标概念
4.3HBase的实现原理
- 三个功能组件:
库函数(链接每个客户端)、Master服务器(管家作用)、Region服务器(负责存储不同的Region) - 三层结构:
Zoolerper文件(记录ROOT表信息位置)、ROOT表(记录META表的Region位置,只能有一个Region,可以访问META表中的数据)、META表(记录了用户数据表的Region位置信息,可以有多个Region)
4.4HBase的运行机制
-
用户读写数据过程
写入数据:
缓存(Region服务器)
|
MenStore (为了保证数据的安全和可恢复性)
|
写日志(Hlog功能)
读数据:
缓存
|
(先)MenStore
|
磁盘上的StoreFile(找相关数据) -
缓存的刷新
周期性把MenStore缓存内容刷写到磁盘的StoreFile文件中,清空缓存,并在日志中标记。
每次刷写都声称一个新的StoreFile文件,因此,每个Store包含多个StoreFile文件。
每个Region服务器都有一个自己的日志文件,每次启动都检查该文件,确认最近一次执行缓存刷新操作之后是否发生新的写入操作,如果发现更新则先写入MenStore,再刷写到StoreFile,最后删除旧日志文件。 -
StoreFile的合并和分裂
-
日志的工作原理
4.5HBase应用方案
- 实际应用中的性能优化
- 怎么检测性能:
Master-status/Ganglia/OpenTSDB/Ambari - 如何构建SQL引擎和Hbase二级索引
4.6HBase安装与实践
-
4.6.1 安装
Hbase安装过程及遇到的问题 -
4.6.2 实践
(1)常用shell命令
(2)常用Java API