HBase的特点是什么
HBase 是一种构建在 HBase 之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用 Hbase。尽管已经有许多数据存储和访问的策略和实现方法,但事实上大多数解决方案,特别是一些关系类型的,在构建时并没有考虑超大规模和分布式的特点。许多商家通过复制和分区的方法来扩充数据库使其突破单个节点的界限,但这些功能通常都是事后增加的,安装和维护都和复杂。同时,也会影响 RDBMS 的特定功能,例如联接、复杂的查询、触发器、视图和外键约束这些操作在大型的 RDBMS 上的代价相当高,甚至根本无法实现。
HBase 从另一个角度处理伸缩性问题。它通过线性方式从下到上增加节点来进行扩展。HBase 不是关系型数据库,也不支持 SQL,但是它有自己的特长,这是 RDBMS 不能处理的,HBase 巧妙地将大而稀疏的表放在商用的服务器集群上。
Hbase 是 Google Bigtable 的开源实现,与 Google Bigtable 利用 GFS 作为其文件存储系统类似,HBase 利用 Hadoop HDFS 作为其文件存储系统; Google 运行 MapReduce 来处理 Bigtable 中的海量数据,HBase 同样利用 Hadoop。
HBase 的单表可以有百亿行、百万列,可以在横向和纵向两个维度插入数据,具有很大的弹性。
当关系型数据库的单个表的记录在亿级时,查询和写入的性能都会呈现指数级下降,这种庞大的数据量对传统数据库来说是一种灾难,而 HBase 在限定某个列的情况下对于单表存储百亿甚至更多的数据都没有性能问题。
HBase 采用 LSM 树作为内部数据存储结构,这种结构会周期性地将较小文件合并成大文件,以减少对磁盘的访问。
与很多面向行存储的关系型数据库不同,HBase 是面向列的存储和权限控制的,它里面的每个列是单独存储的,且支持基于列的独立检索。通过下图的例子来看行存储与列存储的区别。
从上图可以看到,行存储里的一张表的数据都放在一起,但在列存储里是按照列分开保存的。在这种情况下,进行数据的插入和更新,行存储会相对容易。而进行行存储时,查询操作需要读取所有的数据,列存储则只需要读取相关列,可以大幅降低系统 I/O 吞吐量。
通常在传统的关系性数据库中,每一列的数据类型是事先定义好的,会占用固定的内存空间,在此情况下,属性值为空(NULL)的列也需要占用存储空间。
而在 HBase 中的数据都是以字符串形式存储的,为空的列并不占用存储空间,因此 HBase 的列存储解决了数据稀疏性的问题,在很大程度上节省了存储开销。所以 HBase 通常可以设计成稀疏矩阵,同时这种方式比较接近实际的应用场景。
HBase 工作在 HDFS 之上,理所当然地支持分布式表,也继承了 HDFS 的可扩展性。HBase 的扩展是横向的,横向扩展是指在扩展时不需要提升服务器本身的性能,只需添加服务器到现有集群即可。
HBase 表根据 Region 大小进行分区,分别存在集群中不同的节点上,当添加新的节点时,集群就重新调整,在新的节点启动 HBase 服务器,动态地实现扩展。这里需要指出,HBase 的扩展是热扩展,即在不停止现有服务的前提下,可以随时添加或者减少节点。
HBase 运行在 HDFS 上,HDFS 的多副本存储可以让它在岀现故障时自动恢复,同时 HBase 内部也提供 WAL 和 Replication 机制。
WAL(Write-Ahead-Log)预写日志是在 HBase 服务器处理数据插入和删除的过程中用来记录操作内容的日志,保证了数据写入时不会因集群异常而导致写入数据的丢失;而 Replication 机制是基于日志操作来做数据同步的。
当集群中单个节点出现故障时,协调服务组件 ZooKeeper 通知集群的主节点,将故障节点的 HLog 中的日志信息分发到各从节点进行数据恢复。
TAG:
热门标签: 大多(1) 对视(2) 上课(1) 高情商女人面对前任突然联系(1) 怎样经营婚姻和夫妻感情(1)
注
部分信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将立即处理,举报邮箱:1356571586@qq.com
随机关键词:

资源联系人
-
上一篇
冯诺依曼计算机的组成是什么
诺依曼计算机主要由运算器、控制器、存储器和输入输出设备组成,特点是程序以二进制代码的形式存放在存储器中;所有的指令都是由操作码和地址码组成;指令在其存储过程中按照执行的顺序;以运算器和控制器作为计算机结构的中心等。冯诺依曼计算机广泛应用于数据的处理和控制方面,但是存在一些局限性。美籍匈牙利科学家冯诺依曼最先提出程序存储的思想,并成功将其运用在计算机的设计之中,根据这一原理制造的计算机被称为冯诺依曼
-
上一篇
什么是猴痘病毒
进入五月份以来,和天花同属痘病毒科的猴痘病毒,开始在欧美地区陆续爆发,致死率高达 10%,远远超过了新冠病毒。截止到目前为止,全球已有 100 例猴痘确诊病例,海外专家还表示:未来可能会出现更多!那么猴痘病毒究竟是啥?它是怎么传播的?又应该如何预防呢?猴痘是一种病毒性人畜共患病,人类中出现的症状与过去在天花患者身上所看到的症状相似。但是自 1980 年世界上消灭天花以后,天花已不复存在,而猴痘仍然