本篇内容主要讲解“HBase数据模型的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HBase数据模型的概念是什么”吧!
简介:
HBase(Hadoop Database):一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价的PC Server上搭建起大规模机构化存储集群。
HBase是一个山寨版本的BigTable,不过它站在Hadoop这个巨人的肩膀上!
NoSQL | 关系型数据库 | |
数据模型 | 适合结构化、非结构化和半结构化的数据 | 适用于结构化的数据 |
扩展性 | 易于扩展,如添加节点以及扩容 | 较难 |
语言 | 不同数据库操作不同 | 标准sql或类sql |
模式Schema | 随时添加字段 | 必须预先定义好,不方便扩展 |
HBase以表的形式存储数据
表的特点:
大:一个表可以有上亿行,上百万列
面向列:面向列(族)的存储和权限控制,列(族)独立检索
稀疏:对于为null的列,并不占用存储空间,因此,表可以设计的非常疏松
下图是Hadoop生态系统:
HBase位于结构化存储层;
Hadoop HDFS为HBase提供了高可靠性的底层存储支持
Hadoop MapReduce为HBase提供了高性能的计算能力
Zookeeper为HBase提供了稳定服务和failover机制
此为,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变得非常简单。Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库向HBase中迁移变的非常方便。
数据模型的关键概念:
RowKey:用来检索记录的主键。访问HTable中的行,只有三种方式:
通过单个rowkey访问
通过rowkey的range
全表扫描
Qualifier:可动态扩展的列,不需要先定义到HTable schema中,类似于关系型数据库中的列(Column)
Famliy:列族,相当于一个Family下面有多个Qualifier。TTL(留存期),Versions(最大版本数),CompeRSSion(压缩方式)等待都是设置在这一级。
Version/Timestamp:由单一rowkey对应family:qualifier下的值可以允许有多个版本,由毫秒级的时间戳来区分,也可以制定范围取任意版本对应的数据
Cell:存储的最小单位。由rowkey+family:qualifier+timestamp三个维度唯一确定取出value
Namespace:表命名空间,不指定则为默认“default”空间
HTable系统表:
hbase:namespace:存储htable的各表的命名空间
hbase:Meta:存储htable的各个region起止rowkey信息,位置信息等
hbase:ad:记录一些表操作权限的信息,支持到qualifier的ACL,权限分类READ('R'),WRITE('W'),EXEC('X'),CREATE('C'),ADMIN('A')
HBase存储框架:
Zookeeper:HBase集群依赖该组件
Zookeeper Quorum存储-ROOT-表地址、HMaster地址
HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HregionServer的健康情况
HMaster:主要负责Table和Region的管理工作
管理用户对表的增删查改操作
管理HRegionServer的负载均衡,调整Region分布
Region Split后,负责新Region的分布
在HRegionServer停机后,负责失效HRegionServer上Region迁移
HRegionServer管理一些列HRegion对象
每个HRegion对应Table中一个Region,HRegion由多个HStore组成
每个HStore对应Table中一个Column Family的存储
Column Family就是一个集中的存储单元,故将具有相同IO特性的Column放在一个Column Family会更高效
Region:当Table随着记录数不断增加而变大后,会逐渐分裂成多份splits,成为regions,一个region由[startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理
HStore:HBase存储的核心。由MemStore和StoreFile组成,MemStore是Sorted Memory Buffer
-
HLog:在分布式系统环境中,无法避免系统出错或者宕机,一旦HRegionServer意外退出,MemStore中的内存数据就会丢失,为防止数据丢失,引入了HLog。
每次用户操作写入Memstore的同时,也会写一份数据到HLog文件,HLog文件定期会滚动出新,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知,HMaster首先处理遗留的HLog文件,将不同region的log数据拆分,分别放到相应region目录下,然后再将失效的region重新分配,领取到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复。
HDFS:HDFS是一个分布式文件系统。它通过将一个大的文件划分成一个个固定大小的Block来实现分布式存储。每一个Block的默认大小为128MB。每一个Block都存在多个备份,并且被部署在不同的数据节点上,来保障数据的安全。目前,HBase的所有底层数据都以文件的形式交由HDFS来存储。HBase一侧本身不固化保存数据信息
到此,相信大家对“HBase数据模型的概念是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程之家网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。