HBase架构、模型、特点
如需大数据开发整套视频(hadoop\hive\hbase\flume\sqoop\kafka\zookeeper\presto\spark):请联系QQ:1974983704
1、HBase概述
- HBase是一个构建在HDFS上的分布式列存储系统(数据真正存放的位置是HDFS上的,HBase是做数据管理);
- HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;
- HBase是Google Bigtable的开源实现;
- 从逻辑上讲,HBase将数据按照表、行和列进行存储,它是一个分布式的、稀疏的、持久化存储的多维度排序表;
- HBase VS HDFS
(HDFS适合批处理场景,HDFS不支持数据随机查找、HDFS不支持数据更新)
- HBase VS Hive
(Hive适合批处理数据分析场景;Hive不适合实时的数据访问)
2、HBase应用场景
网页库(360搜索-网络爬虫)
商品库(淘宝搜索-历史长的查询)
交易信息(淘宝数据魔方)
云存储服务(小米)
用户画像系统
监控信息(OpenTSDB)
3、HBase概念模型

HBase中数据是可以有多个版本的(默认会返回最新的数据)
- HBase VS Mysql
列:
-HBase的列是可以无限扩展的;
-HBase的列没有类型;
-HBase的多个列可以构成一个列簇(column family)
主键&索引:
-HBase有且仅有一个主键(row key);
-数据根据主键进行排序;-不支持二级索引;
值:
-HBase的值是由多个版本的,每一个成为一个Cell;
-Cell的数目也没有限制(默认是3个)
4、HBase模型特点
高可靠性
与MapReduce良好的集成
可扩展性强:支持数十亿行,上百万列;支持数十万个版本
可以存储非常稀疏的数据
支持点查:根据主键获取一行数据
支持扫描:快速获取某些行区间范围的数据;高效获取某几列的数据
5、HBase物理模型
数据存储需求:节省空间,null值不存储;节省IO,列式扫描少读取数据
数据存储方案的选择:行式存储Mysql,列式存储HBase
列簇式存储:同一列簇的所有列的数据存放在一起;不同列簇的数据物理上分开存储
- HBase物理模型-Cell格式
Cell的构成部分
-row key
-column family
-qualifier(column)
-timestamp
-value
- HBase物理模型-列簇
列簇可以看成式一系列排序好的cell的集合
Cell按照下列顺序进行排序
-row key升序
-column family升序
-qualifier升序
-timestamp降序
- 支持快速检索(二分查找)
- HBase物理模型

HBase将一张大表拆分为多个分片,每一个分片称为一个Region(默认好像式1个G,可以设置);
不同的Region可以放在不同的服务器上;
分片的方式式按照主键的取值区间划分;
每一个Region都包含所有的列簇;
Region按大小分割的,每个表开始只有一个Region,随着数据增多,Region不断增大,当增到到一个阀值的时候,Region就会等分成两个新的Region,之后会有越来越多的Region;
Region式HBase中分布式存储和负载均衡的最小单元
Region内部包含多个列簇,每一个列簇交给一个Store来存储
每个Store将数据分为两部分:存储在内存中的数据(MemStore)和存储在文件系统的数据(StoreFile)
MemStore只存储新增的和修改过的数据,并在内存满的时候将数据刷到StoreFile中
6、HBase架构
HBase的所有数据都存储在HDFS上,只做数据管理工作
HBase还依赖于Zookeeper
HBase本身只有两个角色RegionServer和HMaster
一个HRegionServer下只有一个HLog
- HRegion(区域)
HBase会自动的将表划分为不同的区域
每个区域包含所有行的一个子集
对用户来说,每个表是一堆数据的集合,靠主键来区分
从物理上来说,一张表被拆分成了多块,每一块是一个HRegion
我们用表名+开始和结束主键,来区分每一个HRegion
一个HRegion会保存一个表里面某段连续的数据,从开始主键到结束主键
一张完整的表格是保存在多个HRegion上面
- HRegionServer
所有的数据库数据都保存在HDFS上面
用户通过访问HRegionServer获取这些数据
一台机器上面一般只运行一个HRegionServer
一个HRegionServer上面有多个HRegion,一个HRegion也只会被一个HRegionServer维护
HRegionServer主要负责响应用户I/O请求,从HDFS读写数据,是HBase中最核心的模块
HRegionServer内部管理了一系列的HRegion对象
每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成
每个HStore对应了Table中的一个Column Family的存储
最好将具备共同IO特性的Column放在一个Column Family中
- HMaster
每个HRegionServer都会与HMaster通信
HMaster的主要任务就是给HRegionServer分配HRegion
HMaster指定HRegionServer要维护哪些HRegion
当一台HRegionServer宕机时,HMaster会把它负责的HRegion标记为未分配,然后再把它们分配到其他HRegionServer中
HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行,HMaster在功能上主要负责Table和Region的管理工作:
-.管理用户对Table的增、删、改、查操作;
-管理HRegionServer的负载均衡,调整Region分布;
-在Region Split后,负责新的Region的分配;
-在HRegionServer停机后,负责失效HRegionServer上的Regions迁移
HBase架构、模型、特点的更多相关文章
- HBASE架构解析(二)
http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell( ...
- 深入了解HBASE架构(转)
dd by zhj: 最近的工作需要跟HBase打交道,所以花时间把<HBase权威指南>粗略看了一遍,感觉不过瘾,又从网上找了几篇经典文章. 下面这篇就是很经典的文章,对HBase的架构 ...
- 深入HBase架构解析(二)【转】
转自:http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html 前言 这是<深入HBase架构解析(一)>的续,不多废话, ...
- 【转】HBase架构解析
转载地址:http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html HBase架构组成 HBase采用Master/Slave架构搭建 ...
- Hbase架构和读写流程
转载自:http://www.cnblogs.com/muzili-ykt/p/muzili_ykt.html 在HBase读写时,相同Cell(RowKey/ColumnFamily/Column相 ...
- [转]毕设- 深入HBase架构解析(二)
深入HBase架构解析(二) 前言 这是<深入HBase架构解析(一)>的续,不多废话,继续.... HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell(RowKe ...
- 详解HBase架构原理
一.什么是HBase HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价的PC Server上搭建大规模结构化存储集群. H ...
- [转帖]深度分析HBase架构
深度分析HBase架构 https://zhuanlan.zhihu.com/p/30414252 原文链接(https://mapr.com/blog/in-depth-look-hbase-a ...
- hbase架构和读写过程
转载自:https://www.cnblogs.com/itboys/p/7603634.html 在HBase读写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证 ...
- HBASE架构解析(一)
http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官 ...
随机推荐
- wake on lan magic packet
局域网模式,必须电脑和手机在同一个 局域网,或者是网段内 外网模式 这个就是,你拿着手机,在任何地方,都可以开机电脑.
- windows11上面打开HEIC文件的有效方法
今天在传资料的时候,用手机拍了一张照片传到window11,打开时竟然无法打开,顿时有点诧异,仔细看了文件类型(HEIC),可能软件不识别,怎么解决呢? 经过搜索整理尝试了许多方法,没找到一个合适的. ...
- kafka日志数据清理策略
vim /kafka/server.properties # 日志清理策略优先级是谁先满足条件. # 保留7天的日志数据 log.retention.hours=168 # 日志数据总大小保留100G ...
- 如何把百度地图左边的搜索列表导出成excel里?
有很多人问我,怎么样能够快速的把BAIDU地图左边的搜索列表里的商家地图,电话,导出到EXCEL里. 我就开发了一个小软件,专门为快速的实现导出数据到EXCEL. 为了使用方便,已经将全国的所又省份, ...
- CTreeCtrl中通过单击获取当前选项文本
新建了一个NM_Click消息响应函数,用hParent = m_TreeCtrl.GetSelectedItem();m_TreeCtrl.GetItemText(hParent);获取当前选中的文 ...
- Java课堂学习总结
对于Java字段的初始化来说,共有以下几种方法: 1.类的构造函数(构造方法):当创建一个对象时,其构造函数就会自动调用.构造方法必须与类名相同,无返回值.如果程序员没有定义一个构造函数时,系统会自动 ...
- 前端实现HTML转PDF下载的两种方式
原文链接:https://www.jianshu.com/p/56680ce1cc97 方式一:使用html2canvas和jspdf插件实现 该方式是通过html2canvas将HTML页面转换成图 ...
- mysql主从备份双机热备实现方法
1.环境准备 主服务器(master):192.168.1.1 从服务器(slave):192.168.1.2 要求主从服务器mysql版本相同且大于3.23 2.主服务器 2.1创建同步用户 cre ...
- 肖sir__面试第十天课程__模拟面试讲解
一.面对面模拟面试1.打印好简历2.带好手机,录制自己回答的问题,总结,反思(内部),关闭手机和闹钟(外部)3.有笔试题,可以拍照发群里4.可以携带耳塞(适合女生)5.语速流程6.礼貌用语(面试官好, ...
- HTML clean input cache
.html <input type="search" autocomplete ="off" />