最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[Hbase] HBase的物理模型及数据存储

[复制链接]
跳转到指定楼层
楼主
发表于 2019-3-5 19:06:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1、HBase物理模型
(1)Table中的所有行都按照row key的字典序排列。
(2)Table在行的方向上分割为多个Region。
(3)Region是按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阈值的时候,region就会等分成两个新的region,之后会有越来越多的region。
(4)Region是HBase中分布式存储和负载均衡的最小单元。不同Region分布到不同RegionServer上。
(5)Region虽然是分布式存储的最小单元,但并不是存储的最小单元,存储的最小单元是Cell。Region由一个或者多个Store组成,每个store保存一个columns family。每个store又由一个memStore和0至多个StoreFile组成。memStore存储在内存中,StoreFile存储在HDFS上。
(6)每个column family存储在HDFS上的一个单独文件中。Key和Version number在每个column family中均有一份。空值不会被保存。


2、HBase体系架构



3、HBase数据存储
(1)HBase中的所有数据文件都存储在hadoop HDFS文件系统上,主要包括上述提出的两种文件类型:
1)HFile:HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,进行数据的存储。
2)HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File。
(2)HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了table中的一个region,HRegion中由多 个HStore组成。每个HStore对应了Table中的一个column family的存储,可以看出每个columnfamily其实就是一个集中的存储单元,因此最好将具备共同IO特性的column放在一个column family中,这样最高效。
(3)HStore存储是HBase存储的核心,由两部分组成,一部分是MemStore,一部分是StoreFile。MemStore是 Sorted Memory Buffer,用户写入的数据首先会放入MemStore,当MemStore满了以后会Flush成一个StoreFile(底层实现是HFile)。
(4)Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除 -> 当StoreFiles Compact后,逐步形成越来越大的StoreFile -> 单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split成2个Region,Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer上,使得原先1个Region的压力得以分流到2个Region上。
(5)HBase只是增加数据,有所得更新和删除操作,都是在Compact阶段做的,所以,用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能。
(6)WAL意为Write ahead log,类似Mysql中的binlog,用来做灾难恢复。Hlog记录数据的所有变更,一旦数据修改,就可以从log中进行恢复。每个HRegionServer维护一个HLog,而不是每个HRegion一个。这样不同region(来自不同table)的日志会混在一起,这样做的目的是不断追加单个文件相对于同时写多个文件而言,可以减少磁盘寻址次数,因此可以提高对table的写性能。带来的麻烦是,如果一台HRegionServer下线,为了恢复其上的region,需要将HRegionServer上的log进行拆分,然后分发到其它HRegionServer上进行恢复。


4、ZooKeeper中的操作
在zookeeper上查看保存region元数据的regionserver:
[AppleScript] 纯文本查看 复制代码
[zk: localhost:2181(CONNECTED) 0] ls /
[hbase, zookeeper]
[zk: localhost:2181(CONNECTED) 4] get /hbase/meta-region-server
cZxid = 0x60
ctime = Mon Jul 23 17:30:05 CST 2018
mZxid = 0x60
mtime = Mon Jul 23 17:30:05 CST 2018
pZxid = 0x60
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 78
numChildren = 0 



5、HBase Shell中的操作
hbase-0.98.6-hadoop2]$ bin/hbase shell
(1)查看hbase中的命名空间。hbase默认有两个命名空间:用户自定义的表默认情况下的命名空间是default,系统自带的元数据表的命名空间为hbase。
[AppleScript] 纯文本查看 复制代码
hbase(main):001:0> list_namespace[/color][/size][/font]
[font=微软雅黑][size=2][color=#000000]NAMESPACE                                                                                                                             
2018-07-23 17:54:56,778 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
default                                                                                                                               
hbase                                                                                                                                 
2 row(s) in 2.5020 seconds 
(2)列出命名空间hbase中的表:
[AppleScript] 纯文本查看 复制代码
hbase(main):002:0> list_namespace_tables 'hbase'[/color][/size][/font]
[font=微软雅黑][size=2][color=#000000]TABLE                                                                                                                                 
meta                                                                                                                                  
namespace                                                                                                                             
2 row(s) in 0.2680 seconds 
(3)查看hbase命名空间中的meta表:
[AppleScript] 纯文本查看 复制代码
hbase(main):003:0> scan 'hbase:meta'[/color][/size][/font]
[font=微软雅黑][size=2][color=#000000]
[zk: localhost:2181(CONNECTED) 2] ls /hbase/rs 
[hadoop-senior.ibeifeng.com,60020,1533075373902]
---------------------
作者:魏晓蕾
来源:CSDN
原文:https://blog.csdn.net/gongxifaca ... le/details/81156709  

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-20 01:13

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表