正文
hbase表快照,hbase快照恢复
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
HBase存储架构
1、hbase的核心数据结构为LSM树。LSM树分为内存部分和磁盘部分。内存部分是一个维护有序数据集合的数据结构。RowKey与nosql数据库们一样,RowKey是用来检索记录的主键。
2、HBase采用了类似Google Bigtable的数据模型,即一个稀疏的、分布式的、持久化的多维映射表,每个表都由行键、列族、列限定符和时间戳组成。
3、/hbase/.archive HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到.archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。
4、HBase系统架构如下所示,包括客户端、Zookeeper服务器、Master主服务器、Region服务器。一般而言,HBase会采用HDFS作为底层数据存储。
HBase从入门到精通11:HBase数据保存过程和Region分裂
1、HBase保存数据的流程有以下几个步骤:HBase表的列族在创建之初只有一个Region,随着插入数据的增多Region变得越来越大。
2、以fileServer为例,在使用默认的split策略--IncreasingToUpperBoundRegionSplitPolicy 的情况下,16个预分区Region, 则单个Resion容量达到 min(32,50),即32GB时分裂。
3、默认,HBase 在创建表的时候,会自动为表分配一个 Region,正处于混沌时期,start-end key 无边界,所有 RowKey 都往这个 Region里分配。
4、Hbase Split 是一个很重要的功能,HBase 通过把数据分配到一定数量的 Region 来达到负载均衡的。
5、由于在HBase中数据存储是Key-Value形式,若向HBase中同一张表插入相同RowKey的数据,则原先存在的数据会被新的数据覆盖。设计的RowKey应均匀的分布在各个HBase节点上, 避免数据热点现象。
HBase调优:预分区与行键设计
1、像这样预先创建hbase表分区的方式,称之为预分区。hash(主键) + 年月日时(2019062315)这里只取hash(主键)的前6位,使得行键的长度正好是16,也就是8的整数倍,在64位计算机中,效果最好。
2、像这样预先创建hbase表分区的方式,称之为预分区。hash(主键)+年月日时(2019062315)这里只取hash(主键)的前6位,使得行键的长度正好是16,也就是8的整数倍,在64位计算机中,效果最好。
3、已经有自动分区了,为什么还需要预分区? HBase 在创建表的时候,会自动为表分配一个Region,当一个 Region 达到拆分条件时(shouldSplit 为 true),HBase 中该 Region 将会进行 split,分裂为2个 Region,以此类推。
4、优化建议:检查RowKey设计以及预分区策略,保证写入请求均衡。 KeyValue大小对写入性能的影响巨大,一旦遇到写入性能比较差的情况,需要考虑是否由于写入KeyValue数据太大导致。
六、HBase写入流程
整个写入顺序图流程如下:1 客户端查找对应region 客户端根据要操作rowkey,查找rowkey对应的region。查找region的过程为通过zk获取到hbase:meta表所在region。
和读相比,HBase写数据流程倒是显得很简单:数据先顺序写入HLog,再写入对应的缓存Memstore,当Memstore中数据大小达到一定阈值(128M)之后,系统会异步将Memstore中数据flush到HDFS形成小文件。
首先Hbase是依赖于HDFS和zookeeper的。 Zookeeper分担了Hmaster的一部分功能,客户端进行DML语句的时候,都是先跟ZK交互。
该过程会自动从指定hbase表内一行一行读取数据进行处理。
hbase表的特性
hbase的特点:高可靠性、高性能、面向列、可伸缩的。HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBase采用了数据冗余和自动故障恢复的机制,可以保证数据的高可靠性。它将数据副本存储在不同的服务器上,并在主节点故障时自动切换到备用节点,确保数据的持久性和可用性。
稀疏性:由于 HBase 数据表中的列允许为空,并且空列不会占用存储空间,因此,数据表可以设计得非常稀疏。
Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。
列簇:数据在行中被组织成列簇,每行有相同的列簇,但是在行之间,相同的列簇不需要有相同的列修饰符。在引擎中,HBase将列簇存储在它自己的数据文件中,所以,它们需要事先被定义,此外,改变列簇并不容易。
关于hbase表快照和hbase快照恢复的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。