SlideShare a Scribd company logo
Hbase 介绍
UC 梓力优视 郑
2
目录
• 简介
• 数据模型
• 物理储存
• 系统架构
• 操作
• 特点
3
Hbase 介——简 Hadoop 的生 系态 统
4
Hbase 介简
• HBase ,全称为 Hadoop Hbase ,是一个分布
式的、多版本的、面向列的开源数据库
• HBase 是 Google Bigtable 的开源实现
5
数据模型——概念视图
RowKey Time Stamp
Column Family:article Column Family:author
列 值 列 值
rowkey1
t4 article:title HBase in Action author:name lee
t2 article:title HBase author:nickname nicholas
t4 article:content
HBase is the
hadoop
database.
rowkey2 t1 ... ... ... ...
• 表由行构成
• 每行都对应一个 row key ,且包含多个列
• 每个列都属于某个列族
6
数据模型——基本概念
• row key
– 行键,表中的行根据行的键值进行排序,数据按照 Row key 的
字典序排序存储
• column family
– 列族, HBase 表中的每个列都归属于某个列族
• column qualifier
– 列修饰符,通过列族 : 列修饰符来指定列
– 客户端随时可以把列添加到列族
– 每行的列可以不同
• timestamp
– 版本号,表示数据的版本
– 默认为数据插入时的时间戳,可自定义
– 多版本的数据按照时间倒序排序,最新的数据版本排在最前面
7
数据模型——多 映射表维
 表内的值通过三个键唯一索引
 rowKey (ASC) + column(ASC) + timestamp(DESC) => value
8
数据模型——物理视图
RowKey Time Stamp
Column Family:article
列 值
rowkey1
t4 article:title HBase in Action
t4 article:content
HBase is the hadoop
database.
t2 article:title HBase
RowKey Time Stamp
Column Family:author
列 值
rowkey1
t3 author:name lee
t2 author:nickname nicholas
• 面向列
• 稀疏
9
物理 存——储 Region
 Table 中的所有行都按照 row key 的字典序排列
 Table 在行的方向上分割为多个 Region
 Region 保存在 Region Server 上
10
物理 存——储 Region
 默认情况下,每个表一开始只有一个 Region ;
 随着数据不断插入表, Region 不断增大,当增大到一个阀值时, Region
就会分裂为两个新的 Region ;
11
物理 存——储 HStore
 Region 由若干个 HStore 组成,每个 HStore 储存一个列族的数据
 HStore 由 MemStore 和 StoreFiles 构成
 MemStore 位于内存
 StoreFile 以 HFile 的格式保存在 HDFS 上
12
物理 存——储 HStore
 Flush : 用户写入的数据首先会放入 MemStore ,当 MemStore 满了以后会
Flush 成一个 StoreFile
 Compact : 当 StoreFile 文件数量增长到一定阈值,会触发 Compact 合并
操作,将多个 StoreFiles 合并成一个 StoreFile ,合并过程中会进行版本合
并和数据删除
 Split :当单个 StoreFile 大小超过一定阈值后,会触发 Split 操作,同时把当
前 Region Split 成 2 个 Region ;父 Region 会下线,新 Split 出的 2 个孩子
Region 会被 HMaster 分配到相应的 HRegionServer 上
13
物理 存 ——储 -ROOT- 与 .META.
HBase 中有两张特殊的 Table , -ROOT- 和 .META.
 .META. :记录了用户表的 Region 信息, .META. 可以有多个 Region
 -ROOT- :记录了 .META. 表的 Region 信息, -ROOT- 只有一个 region
Zookeeper 中记录了 -ROOT- 表的 location
14
系 架统 构
15
系 架统 构
• Client 
– 包含访问 HBase 的接口并维护 cache 来加快对 HBase 的访问
• Zookeeper 
– 保证任何时候,集群中只有一个 HMaster
– 实时监控 Region Server 的上线和下线信息,并实时通知给
HMaster
– 存储了 -ROOT- 表的位置
• HMaster 
– 为 Region server 分配 region ,负责 Region server 的负载均衡
– 发现失效的 Region server 并对其上的 Region 进行迁移
– 管理用户对 table 的增删改查操作
• Region Server
– Region server 维护 Region ,处理对这些 region 的 IO 请求
– Region server 负责切分在运行过程中变得过大的 region
– 包含一个 HLog ,是预写式日志,用于灾难恢复
16
操作
• 对表的访问必须通过 row key
– 通过单个 row key 访问
– 通过 row key 的 range
– 全表扫描
• HBase 的写操作是锁行的
– 每一行都是一个原子元素
– 无论对行中任何的列进行修改,都会对行加锁
17
操作——交互接口
• Native Java API
– 最常规和高效的访问方式,适合 Hadoop MapReduce Job 并
行批处理 HBase 表数据
• HBase Shell
– HBase 的命令行工具,最简单的接口,适合 HBase 管理使用
• Thrift Gateway
– 利用 Thrift 序列化技术,支持 C++ , PHP , Python 等多种语
言,适合其他异构系统在线访问 HBase 表数据
• REST Gateway
– 支持 REST  风格的 Http API 访问 HBase,  解除了语言限制
• Pig
• Hive
• Spark
18
Hbase 特点—— Hbase VS. RDBMS
HBase RDBMS
数据类型 只有字符串(字节数组) 丰富的数据类型
数据操作 简单的增删改查
各种各样的函数,表连
接
存储模式 基于列存储 基于表格结构和行存储
数据更新 更新后旧版本仍然会保留 替换
可伸缩性 轻易的进行增加节点,兼容性高 需要中间层,牺牲功能
19
Hbase 特点—— Hbase 的 用 景适 场
• 半结构化或非结构化数据
• 记录非常稀疏
• 多版本数据
• 超大数据量
• 需要高效的随机读写能力
• 不需要完整的关系数据库功能
– 二级索引
– join
– 跨行 / 表的事务处理
– ……
20
参考 料资
资料 链接
淘宝 Hbase 介绍 http://www.searchtb.com/2011/01/understanding-hbase.html
Hbase 的数据模型 http://www.cnblogs.com/NicholasLee/archive/2012/09/13/2683272.html
Hbase 参考指南 http://hbase.apache.org/apache_hbase_reference_guide.pdf
Hbase 简介——京东 http://wenku.baidu.com/view/9cfe96eb240c844769eaeed1.html
Thank you!
www.uc.cn

More Related Content

PPTX
Hbase拾荒者
PDF
H base 使用初体验
PDF
Hbase架构简介、实践
PPT
H base云存储
DOCX
关于Hbase
PPT
Hbase
PDF
大规模数据处理
PPTX
Hadoop 簡介 教師 許智威
Hbase拾荒者
H base 使用初体验
Hbase架构简介、实践
H base云存储
关于Hbase
Hbase
大规模数据处理
Hadoop 簡介 教師 許智威

What's hot (16)

PPTX
Hbase运维碎碎念
PPTX
Hadoop 設定與配置
PDF
诗檀软件 Oracle开发优化基础
PDF
Zh Tw Introduction To H Base
PPTX
Hadoop hive
PDF
百度系统部分布式系统介绍 马如悦 Sacc2010
PPT
Hadoop Map Reduce 程式設計
PPT
Hadoop introduction
PPTX
Hbase简介与实践分享
PDF
Zh Tw Introduction To Hadoop And Hdfs
PDF
Zh Tw Introduction To Map Reduce
PDF
Hadoop大数据实践经验
PPTX
5, OCP - oracle storage
PPTX
7, OCP - configure database for backup and recovery
PPTX
Hdfs
PPTX
Hdfs
Hbase运维碎碎念
Hadoop 設定與配置
诗檀软件 Oracle开发优化基础
Zh Tw Introduction To H Base
Hadoop hive
百度系统部分布式系统介绍 马如悦 Sacc2010
Hadoop Map Reduce 程式設計
Hadoop introduction
Hbase简介与实践分享
Zh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Map Reduce
Hadoop大数据实践经验
5, OCP - oracle storage
7, OCP - configure database for backup and recovery
Hdfs
Hdfs
Ad

Similar to Introduction to Hbase (19)

PDF
Hbase简介
PPTX
Hbase orm framework simplehbase0.5 introduction
PPT
基于hbase的实时计算框架prom(20111114)
PDF
Hbase使用hadoop分析
PPTX
HBase
PDF
Hbase optimization and apply summary in taobao
PPT
基于Hbase的实时计算分享
PPT
基于Hbase的实时计算分享
PPTX
Hbase介绍
PPT
Hadoop学习总结
PDF
HBase杂谈
PDF
hbaseconasia2017: HBase at JD.com
PDF
Hbase在淘宝的应用与优化 修改
PDF
Introduction to Hadoop
PPTX
Hadoop ecosystem
PDF
Hadoop-分布式数据平台
PPTX
Hadoop系统架构
PDF
冯宏华:H base在小米的应用与扩展
PPTX
Hadoop 介紹 20141024
Hbase简介
Hbase orm framework simplehbase0.5 introduction
基于hbase的实时计算框架prom(20111114)
Hbase使用hadoop分析
HBase
Hbase optimization and apply summary in taobao
基于Hbase的实时计算分享
基于Hbase的实时计算分享
Hbase介绍
Hadoop学习总结
HBase杂谈
hbaseconasia2017: HBase at JD.com
Hbase在淘宝的应用与优化 修改
Introduction to Hadoop
Hadoop ecosystem
Hadoop-分布式数据平台
Hadoop系统架构
冯宏华:H base在小米的应用与扩展
Hadoop 介紹 20141024
Ad

Introduction to Hbase

  • 2. 2 目录 • 简介 • 数据模型 • 物理储存 • 系统架构 • 操作 • 特点
  • 3. 3 Hbase 介——简 Hadoop 的生 系态 统
  • 4. 4 Hbase 介简 • HBase ,全称为 Hadoop Hbase ,是一个分布 式的、多版本的、面向列的开源数据库 • HBase 是 Google Bigtable 的开源实现
  • 5. 5 数据模型——概念视图 RowKey Time Stamp Column Family:article Column Family:author 列 值 列 值 rowkey1 t4 article:title HBase in Action author:name lee t2 article:title HBase author:nickname nicholas t4 article:content HBase is the hadoop database. rowkey2 t1 ... ... ... ... • 表由行构成 • 每行都对应一个 row key ,且包含多个列 • 每个列都属于某个列族
  • 6. 6 数据模型——基本概念 • row key – 行键,表中的行根据行的键值进行排序,数据按照 Row key 的 字典序排序存储 • column family – 列族, HBase 表中的每个列都归属于某个列族 • column qualifier – 列修饰符,通过列族 : 列修饰符来指定列 – 客户端随时可以把列添加到列族 – 每行的列可以不同 • timestamp – 版本号,表示数据的版本 – 默认为数据插入时的时间戳,可自定义 – 多版本的数据按照时间倒序排序,最新的数据版本排在最前面
  • 7. 7 数据模型——多 映射表维  表内的值通过三个键唯一索引  rowKey (ASC) + column(ASC) + timestamp(DESC) => value
  • 8. 8 数据模型——物理视图 RowKey Time Stamp Column Family:article 列 值 rowkey1 t4 article:title HBase in Action t4 article:content HBase is the hadoop database. t2 article:title HBase RowKey Time Stamp Column Family:author 列 值 rowkey1 t3 author:name lee t2 author:nickname nicholas • 面向列 • 稀疏
  • 9. 9 物理 存——储 Region  Table 中的所有行都按照 row key 的字典序排列  Table 在行的方向上分割为多个 Region  Region 保存在 Region Server 上
  • 10. 10 物理 存——储 Region  默认情况下,每个表一开始只有一个 Region ;  随着数据不断插入表, Region 不断增大,当增大到一个阀值时, Region 就会分裂为两个新的 Region ;
  • 11. 11 物理 存——储 HStore  Region 由若干个 HStore 组成,每个 HStore 储存一个列族的数据  HStore 由 MemStore 和 StoreFiles 构成  MemStore 位于内存  StoreFile 以 HFile 的格式保存在 HDFS 上
  • 12. 12 物理 存——储 HStore  Flush : 用户写入的数据首先会放入 MemStore ,当 MemStore 满了以后会 Flush 成一个 StoreFile  Compact : 当 StoreFile 文件数量增长到一定阈值,会触发 Compact 合并 操作,将多个 StoreFiles 合并成一个 StoreFile ,合并过程中会进行版本合 并和数据删除  Split :当单个 StoreFile 大小超过一定阈值后,会触发 Split 操作,同时把当 前 Region Split 成 2 个 Region ;父 Region 会下线,新 Split 出的 2 个孩子 Region 会被 HMaster 分配到相应的 HRegionServer 上
  • 13. 13 物理 存 ——储 -ROOT- 与 .META. HBase 中有两张特殊的 Table , -ROOT- 和 .META.  .META. :记录了用户表的 Region 信息, .META. 可以有多个 Region  -ROOT- :记录了 .META. 表的 Region 信息, -ROOT- 只有一个 region Zookeeper 中记录了 -ROOT- 表的 location
  • 15. 15 系 架统 构 • Client  – 包含访问 HBase 的接口并维护 cache 来加快对 HBase 的访问 • Zookeeper  – 保证任何时候,集群中只有一个 HMaster – 实时监控 Region Server 的上线和下线信息,并实时通知给 HMaster – 存储了 -ROOT- 表的位置 • HMaster  – 为 Region server 分配 region ,负责 Region server 的负载均衡 – 发现失效的 Region server 并对其上的 Region 进行迁移 – 管理用户对 table 的增删改查操作 • Region Server – Region server 维护 Region ,处理对这些 region 的 IO 请求 – Region server 负责切分在运行过程中变得过大的 region – 包含一个 HLog ,是预写式日志,用于灾难恢复
  • 16. 16 操作 • 对表的访问必须通过 row key – 通过单个 row key 访问 – 通过 row key 的 range – 全表扫描 • HBase 的写操作是锁行的 – 每一行都是一个原子元素 – 无论对行中任何的列进行修改,都会对行加锁
  • 17. 17 操作——交互接口 • Native Java API – 最常规和高效的访问方式,适合 Hadoop MapReduce Job 并 行批处理 HBase 表数据 • HBase Shell – HBase 的命令行工具,最简单的接口,适合 HBase 管理使用 • Thrift Gateway – 利用 Thrift 序列化技术,支持 C++ , PHP , Python 等多种语 言,适合其他异构系统在线访问 HBase 表数据 • REST Gateway – 支持 REST  风格的 Http API 访问 HBase,  解除了语言限制 • Pig • Hive • Spark
  • 18. 18 Hbase 特点—— Hbase VS. RDBMS HBase RDBMS 数据类型 只有字符串(字节数组) 丰富的数据类型 数据操作 简单的增删改查 各种各样的函数,表连 接 存储模式 基于列存储 基于表格结构和行存储 数据更新 更新后旧版本仍然会保留 替换 可伸缩性 轻易的进行增加节点,兼容性高 需要中间层,牺牲功能
  • 19. 19 Hbase 特点—— Hbase 的 用 景适 场 • 半结构化或非结构化数据 • 记录非常稀疏 • 多版本数据 • 超大数据量 • 需要高效的随机读写能力 • 不需要完整的关系数据库功能 – 二级索引 – join – 跨行 / 表的事务处理 – ……
  • 20. 20 参考 料资 资料 链接 淘宝 Hbase 介绍 http://www.searchtb.com/2011/01/understanding-hbase.html Hbase 的数据模型 http://www.cnblogs.com/NicholasLee/archive/2012/09/13/2683272.html Hbase 参考指南 http://hbase.apache.org/apache_hbase_reference_guide.pdf Hbase 简介——京东 http://wenku.baidu.com/view/9cfe96eb240c844769eaeed1.html

Editor's Notes

  • #12: 检索数据时,先在MemStore找,找不到再找StoreFile
  • #14: 父Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer上
  • #16: Hlog保存与HDFS上,是对MemStore的备份; 在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中HLog文件定期会滚动出新的,并删除旧的文件(已持久化到StoreFile中的数据);