SlideShare a Scribd company logo
1 of 21
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

What's hot

Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念haiyuan ning
 
Hadoop 設定與配置
Hadoop 設定與配置Hadoop 設定與配置
Hadoop 設定與配置鳥 藍
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 maclean liu
 
Zh Tw Introduction To H Base
Zh Tw Introduction To H BaseZh Tw Introduction To H Base
Zh Tw Introduction To H Basekevin liao
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010Chuanying Du
 
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Wei-Yu Chen
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introductionTianwei Liu
 
Hbase简介与实践分享
Hbase简介与实践分享Hbase简介与实践分享
Hbase简介与实践分享bluedavy lin
 
Zh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And HdfsZh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And Hdfskevin liao
 
Zh Tw Introduction To Map Reduce
Zh Tw Introduction To Map ReduceZh Tw Introduction To Map Reduce
Zh Tw Introduction To Map Reducekevin liao
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Hanborq Inc.
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storageted-xu
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recoveryted-xu
 

What's hot (16)

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

Similar to Introduction to Hbase

Ted yu:h base and hoya
Ted yu:h base and hoyaTed yu:h base and hoya
Ted yu:h base and hoyahdhappy001
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Wei-Yu Chen
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
Redis介绍
Redis介绍Redis介绍
Redis介绍锐 张
 
HFile,Compact And Split of HBase
HFile,Compact And Split of HBaseHFile,Compact And Split of HBase
HFile,Compact And Split of HBasejhao niu
 
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬Hang Geng
 
Hbase使用hadoop分析
Hbase使用hadoop分析Hbase使用hadoop分析
Hbase使用hadoop分析baggioss
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us Simon Hsu
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
 
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracleBuffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oraclefrogd
 
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Yang Guanjun
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理airsex
 

Similar to Introduction to Hbase (15)

Zh tw introduction_to_h_base
Zh tw introduction_to_h_baseZh tw introduction_to_h_base
Zh tw introduction_to_h_base
 
Ted yu:h base and hoya
Ted yu:h base and hoyaTed yu:h base and hoya
Ted yu:h base and hoya
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
HFile,Compact And Split of HBase
HFile,Compact And Split of HBaseHFile,Compact And Split of HBase
HFile,Compact And Split of HBase
 
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
 
Hbase使用hadoop分析
Hbase使用hadoop分析Hbase使用hadoop分析
Hbase使用hadoop分析
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracleBuffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
 
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 

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

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