做企业网站哪家好,做好公众号 网站建设,微网站怎么做百度关键词,网站域名实名证明官方文档#xff1a;Apache HBase – Apache HBase™ Homehttps://hbase.apache.org/
一、HBase概述
1.概述 HBase的技术源自Google的BigTable论文#xff0c;HBase建立在Hadoop之上#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统#xff0c;用于…官方文档Apache HBase – Apache HBase™ Homehttps://hbase.apache.org/
一、HBase概述
1.概述 HBase的技术源自Google的BigTable论文HBase建立在Hadoop之上是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统用于存储海量的结构化或者半结构化非结构化的数据底层是字节数组做存储的hbase利用Hadoop的HDFSHadoop分布式文件系统作为其底层存储并使用Zookeeper作为协同服务以实现高可靠性和数据处理的稳定性。HBase适合存储非结构化和半结构化的数据它不支持传统关系型数据库的复杂查询语言和事务特性而是基于列的存储模式允许大数据集的实时随机访问。 2.HBase处理数据形式 虽然Hadoop是一个高容错、高延时的分布式文件系统和高并发的批处理系统但是它不适用于提供实时计算 HBase是可以提供实时计算的分布式数据库数据被保存在HDFS分布式文件系统上由HDFS保证期高容错性; 但是再生产环境中HBase是如何基于hadoop提供实时性呢 HBase上的数据是以StoreFile(HFile)二进制流的形式存储在HDFS上block块儿中 但是HDFS并不知道的HBase用于存储什么它只把存储文件认为是二进制文件也就是说HBase的存储数据对于HDFS文件系统是透明的。 3.HBase与HDFS的对比 4.Hbase数据模型
HBase通过表格的模式存储数据每个表格由列和行组成其中每个列又被划分为若干个列簇colnum family请参考下面的图 表HBase的数据同样是用表来组织的表由行和列组成列分为若干个列族行和列的坐标交叉决定了一个单元格。 行每个表由若干行组成每个行有一个行键作为这一行的唯一标识。访问表中的行只有三种方式通过单个行键进行查询、通过一个行键的区间来访问、全表扫描。 列簇一个HBase表被分组成许多“列族”的集合它是基本的访问控制单元。 列修饰符列限定符列族里的数据通过列限定符或列来定位 单元格在HBase表中通过行、列族和列限定符确定一个“单元格”cell单元格中存储的数据没有数据类型总被视为字节数组byte[] 时间戳每个单元格都保存着同一份数据的多个版本这些版本采用时间戳进行索引 5.Hbase数据坐标
HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格(cell)cell中的数据是没有类型的全部是字节码形式存储因此可以视为一个“四维坐标”即[行键, 列族, 列限定符, 时间戳。
图一 图一其实并不完全准确下图是较为完整的理解
图二 6.HBase区域 HBase自动把表水平划分为区域Region每个区域都是有若干连续行构成的一个区域由所属的表、起始行、终止行不包括这行三个要素来表示。 一开始一个表只有一个区域但是随着数据的增加区域逐渐变大等到它超出设定的阈值128M大小就会在某行的边界上进行拆分分成两个大小基本相同的区域。然后随着数据的再增加区域就不断的增加如果超出了单台服务器的容量就可以把一些区域放到其他节点上去构成一个集群。也就是说集群中的每个节点Region Server管理整个表的若干个区域。所以我们说区域是HBase集群上分布数据的最小单位。 图解一 图解二 二、HBase系统架构
1.架构图 2.组件介绍与功能
HBase由三种类型的服务器以主从模式构成 Region Server负责数据的读写服务用户通过与Region server交互来实现对数据的访问。 HBase HMaster负责Region的分配及数据库的创建和删除等操作。 ZooKeeper负责维护集群的状态某台服务器是否在线服务器之间数据的同步操作及master的选举等。
HDFS的DataNode负责存储所有Region Server所管理的数据即HBase中的所有数据都是以HDFS文件的形式存储的。出于使Region server所管理的数据更加本地化的考虑Region server是根据DataNode分布的。HBase的数据在写入的时候都存储在本地。但当某一个region被移除或被重新分配的时候就可能产生数据不在本地的情况。这种情况只有在所谓的compaction之后才能解决。 2.1 Client 包含访问HBase的接口并维护cache来加快对HBase的访问 2.2 Zookeeper 1保证任何时候集群中只有一个master 2是存储所有Region的寻址入口(存储元数据表的元数据信息) 3实时监控Region server的上线和下线信息并实时通知Master 4存储HBase的schema和table元数据的meta信息 2.3 Master 1为Region server分配region 2负责Region server的负载均衡 3发现失效的Region server并重新分配其上的region 4管理用户对table的增删改操作 2.4 RegionServer 1Region server维护region处理对这些region的IO请求 2Region server负责切分在运行过程中变得过大的region 2.5 HLog日志文件) HLog文件就是一个普通的Hadoop Sequence FileSequence File 的Key是 HLogKey对象HLogKey中记录了写入数据的归属信息除了table和 region名字外同时还包括sequence number和timestamptimestamp是” 写入时间”sequence number的起始值为0或者是最近一次存入文件系 统sequence number。 HLog SequeceFile的Value是HBase的KeyValue对象即对应HFile中的 KeyValue 2.6 Region HBase自动把表水平划分成多个区域(region)每个region会保存一个表里面某段连续的数据每个表一开始只有一个region随着数据不断插 入表region不断增大当增大到一个阀值的时候region就会等分会两个新的region裂变 当table中的行不断增多就会有越来越多的region。这样一张完整的表被保存在多个Regionserver上。 2.7 Memstore 与 storefile 一个region由多个store组成一个store对应一个CF列簇 store包括位于内存中的memstore和位于磁盘的storefile写操作先写入 memstore当memstore中的数据达到某个阈值hregionserver会启动 flashcache进程写入storefile每次写入形成单独的一个storefile 当storefile文件的数量增长到一定阈值后系统会进行合并minor、 major compaction在合并过程中会进行版本合并和删除工作 majar形成更大的storefile。 当一个region所有storefile的大小和超过一定阈值后会把当前的region 分割为两个并由hmaster分配到相应的regionserver服务器实现负载均衡。 客户端检索数据先在memstore找找不到再找storefile HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元就表 示不同的HRegion可以分布在不同的HRegion server上。 HRegion由一个或者多个Store组成每个store保存一个columns family。 每个Strore又由一个memStore和0至多个StoreFile组成。 如下图StoreFile 以HFile格式保存在HDFS上