凯里网站建设,屯留做网站哪里好,wordpress 自适应 汉化,导航网站没有内页没有了原文链接#xff1a;http://www.ibearzmblog.com/#/technology/info?id3f432a2451f5f9cb9a14d6e756036b67
前言
大数据的核心问题无非就是存储和计算这两个。Hadoop中的HDFS解决了数据存储的问题#xff0c;而HBase就是在HDFS上构建#xff0c;因此Hbase既能解决大数据存…原文链接http://www.ibearzmblog.com/#/technology/info?id3f432a2451f5f9cb9a14d6e756036b67
前言
大数据的核心问题无非就是存储和计算这两个。Hadoop中的HDFS解决了数据存储的问题而HBase就是在HDFS上构建因此Hbase既能解决大数据存储的问题又能解决数据实时查询的问题。
是什么
HBase是一个高可靠、高性能、可伸缩的分布式存储系统是一个NoSQL数据块它同样包含行和列不过从底层来看跟关系型数据库比本质的数据存储结果有着本质的差别。
特点
Hbase是通过RowKey即是行键来检索数据的主要用于存储非结构化、板结构化数据像图片、视频、视频这些非结构化数据XML这些半结构化数据都可以用HBase来存储。Hbase的特性跟HDFS也类似主要依靠横向扩展来提高自身的存储和计算能力。
下面是一些HBase的重要特性
容量大单表可以支持百亿级的行、百万级的列。无模式同一个表的不同行可以有不同列。面向列支持列独立索引。稀疏性表设计可以非常稀疏当值为空的时候并不会占用存储空间。扩展性底层依赖HDFSHDFS怎么样它就怎么样。高可靠性提供了副本机制防止数据丢失。
HBase的组成
HBase的模型由四个部分组成表、行键、列簇、单元格。
表
表是HBase作为分布式数据库的核心概念跟传统的关系型数据库一样HBase的表也是由行和列组成的多个列可以组成列簇。
行键RowKey
可以等同于关系型数据库里的主键HBase是按照RowKey进行排序的所以需要设计良好的行键来提高查询性能。
列簇ColumnFamily
HBase的每个列都会归属于某个列簇每个列簇里的所有成员都会有相同的前缀例如上图bear:html、dog:blog.com和dog:view.com这三列一共包含两个列簇分别是bear和dog列名由列簇前缀修饰符组成。
列簇是表结构的一部分在使用表前就需要提前定义好而其中的列并不是必须的可以在插入数据的时候生成。如果经常一起查询的多列建议都放在同一个列簇里因为跨列簇查询也会影响查询效率。
单元格Cell
HBase中通过行键和列确定的一个存储单元成为单元格。每个单元格的内部都保存了同一份数据的多个版本并且按时间戳倒叙排序如下图 时间戳TimeStamp可以在用户插入的时候赋值或者让RegionServer自动赋值。
HBase的物理模型
在实际的物理存储上HBase是按列分开存储的而列则是按列簇进行分组而一个列簇的数据都会被同一个Region进行管理这里是指同一个列簇的数据由同一个Region管理并不是指一个Region只负责一个列簇。
Region是Hbase数据管理的基本单位数据的移动、分裂等等都是以Region来进行处理。HBase表的行会按照Rowkey进行排序而在表里的行会被分割成多个Region如下图所示 在初期数据不大的时候默认只有一个Region后面随着记录的疯狂式增长Region就会分裂不同的Region会被Master分发到不同的RegionServer上。
但是在HBase中Region虽然是分布式存储的最小单元但并不存储的最小单元。Region由一个或多个Store组成每个Store保存一个Column Family每个Store又由一个memStore和多个StoreFile组成memStore存储在内存中StoreFile则是在HDFS上结构如下所示
HBase的架构
HBase包含4个核心模块分别是客户端Client、协调服务Zookeeper、主节点HMaster、从节点HRegionServer。
客户端Client
Client是HBase系统的入口可以通过Client来操作HBase。Client都是通过RPC调用来与HMaster和RegionServer通信。
Zookeeper
负责管理HMaster的选举保证集群中只有一个HMaster是Active状态实时监控HRegionServer状态并通知给HMaster。存储HBase的Schema和Table的元数据。
HMater
在HBase中可以启动多个HMaster但是在正常情况下只有一个HMaster是对外提供服务的而其他的HMaster则负责备用一主多从结构这些由zookeeper来控制。HMaster的主要作用如下
管理用户对表的CRUD操作。调整HRegion的分布管理HRegionServer的负载均衡。HRegion分裂后负责将新的HRegion分配到其他的HRegionServer上。当某个HRegionServer失效后负责迁移HRegion到正常的HRegionServer上。
HRegionServer
主要负责响应客户端的I/O请求。HRegionServer内部维护了一系列的HRegion对象一个HRegion对象等于一个Region每个HRegion对应多个HStore每个HStore对应一个列簇每个列簇就是一个集中的存储单元。
总体架构如下
结尾
HBase的总体结构介绍到这里后面会更新它的部署方式。