Hbase
Hadoop是一个高可靠性、高性能、面向列、可伸缩、 实时读写的分布式数据库
基本结构

- 表 table
- 行 row
- 行键 rowkey
- 列族 column family
- 列限定符 qualifier
- 单元格 cell
- 版本、时间戳
数据模型

id | name | Age | Hobby | Address |
01 | zhangsan | 26 | 篮球 | 山东 |
02 | ||||
03 | ||||
04 |
变成这样:
Rowdy | Family1 | Family2 |
01 | Family1:name=zhangsan Family1:age=26 | Family2:hobby=篮球 Family:address=山东 |
02 | ||

Shell 操作
# 建表
create "表名", "列族1", "列族2"
create "Student", "StuInfo", "Grades"
# 插入数据
put "表名", "rowKey", "列族1:列族限定符", "数据"
put "Student", "0001", "StuInfo: Name", "Lux"
# 全面扫描
scan "表名"
# 查数据
get "表名", "rowkey", "列族:列限定符"
get "Student", '0003'
# 改数据
put "表名", "rowKey", "列族1:列族限定符", "数据"
# 删除单元格
delete "表名", "rowkey", "列族:限定字符"
# 删除一行
deleteall "表名", "rowkey"
# 删除表
disable "表名"
drop "表名"
# 列出所有表
list
# 批量执行
hbase shell 命令文本文件
# 查询表中记录数
count "表名"
# 查询是否存在
exists "表名"
# 多版本数据获取
alter "表名", {NAME=>"列族", VERSIONS=>保留版本数}Hbase Regios 作用 ?
- 表拆分到一些较小的片段叫regions
- 表按行键拆分成多个regions
- Regions由一个RegionServer 管理
- RegionServer通常运行在集群中的工作节点
- RegionServer通常服务多个Regions
Hbase 集群架构



HMaster
- 监控集群中所有 RegionServer进程
- 管理用户对table结构的增删改查操作
- 在Region split后,负责新Region的分配
- HMaster失效仅会导致所有元数据无法修改,表中数据读写还可以操作
- 管理HRegionServer的负载均衡,调整Region分布
- 集群中所有 metadata 信息改变的入口
- 在HRegionServer停机后,负责失效HRegionServer上的Region的迁移
ZooKeeper
- 保证任何时候,集群中只有一个HMaster(HA)
- 实时监控RegionServer的上线和下线信息,并实时通知给HMaster
- 保证任何时候,集群中只有一个HMaster(HA)
HRegionServer
- 维护Region,并往HDFS中写数据
- 向Client提供服务
- 当表的大小超过设置 值时,Split Region
- 在HRegionServer停机后,负责失效HRegionServer上的Region的迁移
HBase and ZooKeeper
- HBase元数据存储在Zookeeper中
- 默认情况下,Hbase管理Zookeeper实例,如启动或停止zookeeper
- Zookeeper解决Hbase单节点故障问题
- HA的集群中可以有多个Masters
- 只能有一台Master管控集群
- ZooKeeper 负责协调各Master服务
- Master服务之间相互竟争,取得集群运行控制权
- 如果控制集群的Master异常,剩下的Master服务器将继续竟争集群管控权
HBase Region 定位

- Client向Zookeeper发出第一个查询,找到hbase:meta的位置
- 第二个查询发给hbase:meta
- hbase:meta查询出所有region和其所在的位置
- hbase:meta 表永远不会拆分成多个Regions
- 第三个查询发给存储了目标Region的RegionServer
- 第一个和第二个查询的结果会缓存在Client的机器中
总结:
- 表通过row key拆分成region
- 表拆分成regions并且由RegionServers管理
- HMaster负责协调管理RegionServers
- HDFS和ZooKeeper为Hbase提供高可用(HA)
- hbase:meta用于找到哪个RegionServer服务管理哪些region和region的起止rowkey
















