HBase是一个领先的NoSQL数据库
面向列存储的NoSQL(Not Only Sql)数据库
是一个分布式HashMap底层数据<K,V>
基于Google Big Data Table论文
使用HDFS作为存储并利用其可靠性
前言—什么的是NoSQL
不遵循传统RDBMS模型的数据库
数据是非关系的,且不使用SQL作为主要的查询语句
解决数据库的可伸缩性和可用性问题
不针对原子性或一致性问题
关系型数据库和关系型数据库的对比
BI智能商务
它是一套完整的解决方案
BI应用涉及模型,模型依赖于模式
BI主要支持标准SQL,对NoSQL支持弱关系型数据库
NoSQL!=大数据
一、HBase概述
HBase特点
数据访问速度快,响应时间约2-20毫秒
支持随机读写,每个节点20K~100K+ops/s
可扩展性,可扩展到20000+节点
Hbase应用场景
(1)时间序列数据
高容量,高速读写
HBase之上有OpenTSDB模块,可以满足时序场景
(2)信息传递
高容量,高速读写
通信,消息同步的应用构建在HBase之上,比如email,FaceBook等
(3)web后端应用程序
高容量,高速读写
头条类、新闻类的新闻、网页、图片存储在HBase中
Hive生态圈技术
Kylin HBase上的OLAP
Phoenix SQL操作HBase工具
Yarn
Hive
metadata存储可以迁移到Hbase
Ambari
二、HBase物理架构
1.HBase采用Master/Slave架构
2.Hmaster的作用
是HBase集群的主节点,可以配置多个,用来实现HA
处理元数据的变更
监控RegionServer
负责RegionServer的负载均衡
处理RegionServer故障转移
通过ZooKeeper发布自己的位置给客户端
3.RegionServer
(1)概念
(2)作用
负责管理维护Region,负责存储HBase实际数据
4.Zookeeper的作用
存储hbase元数据地址
监控region server状态
5.Region和Table
单个Table(表)被分区成大小大致相同的Region
Region是HBase集群分布数据的最小单位
Region被分配给集群中的RegionServer
一个Region只能分配给一个RegionServer
6HBase逻辑架构–Row
Rowkey(行键)是唯一的并已排序
Schema可以定义合适插入记录
每个Row都可以定义自己的列,即使其他Row不使用
使用唯一时间戳维护每个Row版本
HBase数据全部以字节存储
三、HBase元数据管理
数据管理目录
(1)系统目录表hbase:meta
存储元数据
(2)ZooKeeper存储
hbase:meta表的位置信息
HBase实际数据存储在HDFS上
四、HBase Shell
HBase Shell是一种操作HBase的交互模式
通过hbase shell进入
version --查看版本
status --查看集群状态
whoami --查看
help
创建一个表
create 'customer',{NAME=>'addr'},{NAME=>'order'}
列出HBase所有的表
list
查看表的详细信息
desc 'customer'
添加数据
put 'customer','zhangsan','addr:city','beijing'
获取数据
get 'customer','zhangsan'
五、HBase读写数据流程
HBase读数据流程
HBase写数据流程
附:
IO读写的两个特性:顺序读写和随机读写
常用的Rowkey排序:字典序和数字序