当前位置:   article > 正文

【Hadoop】Hbase : 面向列的Nosql 、分布式数据库_hbase面向列

hbase面向列


      Hbase是基于hadoop的开源数据库,它的设计具有高性能、高可靠性、列存储、可伸缩、实时读写的数据库系统,用于存储粗粒度结构化的数据。


     Hbase是面向列存储的、非结构型、分布式数据库。

 

 

架构图

 

 

Region:服务器:


     Region是hbase中分布式存储和负载均衡的最小单位,一个表拥有多个region,分配在不同的region服务器上,一个region内的数据存储在一个region服务器上。物理上所有的数据存储到hdfs上。


     一台计算机上只运行一个region服务器,管理维护其他region实例。


     Hbase在行的方向上将存储表分成了多个region。每个表最初只有一个region,随着记录数的增加,region会被分割成两个新的region,以此类往。通常一段时间后,一个表中会有n 个 region。


     Region由一到多个store组成,每个store保存一个列族的所有数据。每个store由一个memstore和零个或多个storefile组成。


   Storefile则Hfile的格式存储在HDFS中。

 

主服务器:


        Hbase是主从结构。每个时刻只有一个HMaster运行,HMaster将Region分配给Region服务器,协调region服务器的负载并维护集群状态。

       HMaster只向Region服务器提供数据服务,Region服务器负责对所有region的读写请求操作。HMaster通过ZooKeeper判断是否出现故障,如出现则会参考log文件,重新分配Regions。


元数据表:


        用户表的regions元数据被存储在.meta表中,随着region的增加,.meta表中数据也会增大,并分裂成多个regions。.meta将表中的多个regions的元数据保存在ROOT表中,由ZooKeeper记录ROOT表的位置信息以便查询。


    中ROOT表不会被分割,只有一个region,用以保障最多需要三次跳转就可以定位到任意一个region.

 

运行原理

 

数据库发展

 

1.nosql

       NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,NoSQL数据库是非关系的、水平可扩展、分布式并且是开源的。在当时是一项全新的数据库革命性运动,NoSQL数据库主要分为四大类:健值存储数据库、列存储数据库、文档型数据库、图形数据库。

       NoSQL 数据库分类

类型

部分代表

特点

列存储

Hbase

Cassandra

Hypertable

顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

文档存储

MongoDB

CouchDB

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。

key-value存储

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)

图存储

Neo4J

FlockDB

图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 

对象存储

db4o

Versant

通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。

xml数据库

Berkeley DB XML

BaseX

高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。



2.Newsql

         NewSQL是对所有新型可扩展、高性能数据库的简称,它们不仅有NoSQL对海量数据库的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。这类新式的关系型数据库针对OLTP(读-写)工作负载,追求提供和NoSQL系统相同的扩展性能。

 

        “NewSQL”是我们对各种新的可扩展/高性能的SQL数据库厂商的简称。NewSQL厂商的共同之处在于研发新的关系数据库产品和服务,通过这些产品和服务,把关系模型的优势发挥到分布式体系结构中,或者提高关系数据库的性能到一个不必进行横向扩展的程度。

 


几种数据库类型的发展趋势:

    *sql数据库:关系型,扩展性差;

 ·NoSQL数据库,旨在满足分布式体系结构的可扩展性需求和/或无模式数据管理需求;

 ·NewSQL数据库,兼容sql和nosql的优点。

   ·数据网格/缓存产品,旨在存储数据在内存中,以提高应用程序和数据库性能。

 


列存储和行存储的对比

基于行存储:

基于列存储:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/465407
推荐阅读
相关标签
  

闽ICP备14008679号