1.HBase 的简介
2. Hive 的安装
3. Hive 的 Shell 命令
RDBMS 在海量数据下的查询速度越来越慢
分布式数据库无法满足 CAP 理论
Consistency(一致性)
数据一致更新,所有数据变动都是同步的
Availability(可用性)
良好的响应性能
Partition tolerance(分区容错性)
可靠性
非关系型数据库---- 分布式数据库 有选择性的放弃了 CAP 理论中的某一个特性
HBase 是非关系型数据库的一种
起源于 Google 的 BigTable 论文 Doug Cutting
使用 Java 实现了该论文 基于 Hadoop 存储数据
最初是隶属于 Hadoop 的一个模块
现在已经成为 Apache 的顶级独立项目
HBase 采用 key-value 的形式存储数据
Key
Rowkey
具有唯一性
每一行的唯一标识
按照 ASCII 升序排列
Value
Column Family(列族)
包含若干列
Column(列)
每行的列可以完全不同
Cell(单元格)
每个单元格可以存储数据的多个版本
空值不占用任何存储空间
HBase 的集群架构
HRegionServer
负责存储数据
客户端直连 HRegionServer 进行查询
HRegion
一个 HRegion 对应表的一个 Region
HRegion 由多个 Store 组成
Store
每个 Store 对应表中的一个 Colum
Family Store 由 MemStore 和 StoreFile 组成
MemStore 是内存缓冲区
StoreFile 是磁盘上保存数据的文件
Flush 机制
数据先写入 MemStore
达到某些条件的时候一次性写入 StoreFile
MemStore 容量达到上限(128M)
MemStore 占用整个节点的内存超过上限(40%)
Compact 机制
每次 Flush 会产生一个 StoreFile
当 StoreFile 数量达到 3 个时会合并为一个大的 StoreFile
Split 机制
当单个 StoreFile 的体积超过上限(10G)
会把当前 Region 分裂为 2 个 Region
新的 Region 会迁移到其它 HRegionServer 进行管理
HLog 是 HBase 实现 WAL 的日志文件
WAL:预写日志
保证数据的持久性和原子性
写数据需要先写入 HLog,再写入 MemStore
只有都写入成功,才认为数据写入成功
当 RegionServer 宕机后,可以从 HLog 恢复数据
当 HLog 数量达到上限(32)的时候会触发 Flush 操作
对于已经 Flush 的数据,其 HLog 会被删除
HMaster 负责维护元数据表(.META.)
META. 表记录了每个表的 Region 的信息
有几个 Region
每个 Region 的 rowKey 的范围
每个 Region 所在的 HRegionServer .
META. 表也是存储在某个 HRegionServer 上
具体在哪个 HRegionServer 是记录在 Zookeeper 上
META. 有且只有一个 Region
HRegion 寻址方式
1、Client 询问 Zookeeper 获取.META. 在哪儿?
Zookeeper 告诉 Client 在 HRegionServer2
2、Client 询问 HRegionServer2 数据在哪儿?
HRegionServer2 告诉 Client 在 HRegionServer3
3、Client 询问 HRegionServer3 数据是什么?
HRegionServer3 返回数据内容
HBase Shell 是 HBase 集群的命令行接口
用户使用 Shell 访问 HBase并与其进行交互
HBase Shell 提供了客户端和管理功能
基础命令
启动--- hbase shell
退出 ---exit 或者 quit
帮助 help ‘命令’