`

【转】Hbase原理、基本概念、基本架构

阅读更多
 

  • 概述


HBase是一个构建在HDFS上的分布式列存储系统;
HBase是基于Google BigTable模型开发的,典型的key/value系统;
HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;
从逻辑上讲,HBase将数据按照表、行和列进行存储。
与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
Hbase表的特点
大:一个表可以有数十亿行,上百万列
无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列
面向列:面向列(族)的存储和权限控制,列(族)独立检索
稀疏:空(null)列并不占用存储空间,表可以设计的非常稀疏;
数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
数据类型单一:Hbase中的数据都是字符串,没有类型。

  • Hbase数据模型

Hbase逻辑视图


注意上图中的英文说明

Hbase基本概念

RowKey:是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要。
Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加
Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
Value(Cell):Byte array

  • Hbase物理模型
每个column family存储在HDFS上的一个单独文件中,空值不会被保存。
Key 和 Version number在每个 column family中均有一份;
HBase 为每个值维护了多级索引,即:<key, column family, column name, timestamp>

物理存储:
1、Table中所有行都按照row key的字典序排列;
2、Table在行的方向上分割为多个Region;
3、Region按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,之后会有越来越多的region;
4、Region是Hbase中分布式存储和负载均衡的最小单元,不同Region分布到不同RegionServer上。

 

5、Region虽然是分布式存储的最小单元,但并不是存储的最小单元。Region由一个或者多个Store组成,每个store保存一个columns family;每个Strore又由一个memStore和0至多个StoreFile组成,StoreFile包含HFile;memStore存储在内存中,StoreFile存储在HDFS上。


 

  • HBase架构及基本组件

 

Hbase基本组件说明:

 

Client

包含访问HBase的接口,并维护cache来加快对HBase的访问,比如region的位置信息

Master

为Region server分配region

负责Region server的负载均衡

发现失效的Region server并重新分配其上的region

管理用户对table的增删改查操作

Region Server

Regionserver维护region,处理对这些region的IO请求

Regionserver负责切分在运行过程中变得过大的region

Zookeeper作用

通过选举,保证任何时候,集群中只有一个master,Master与RegionServers 启动时会向ZooKeeper注册

存贮所有Region的寻址入口

实时监控Region server的上线和下线信息。并实时通知给Master

存储HBase的schema和table元数据

默认情况下,HBase 管理ZooKeeper 实例,比如, 启动或者停止ZooKeeper

Zookeeper的引入使得Master不再是单点故障

 

Write-Ahead-Log(WAL)


该机制用于数据的容错和恢复:

每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中(HLog文件格式见后续),HLog文件定期会滚动出新的,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知到,HMaster首先会处理遗留的 HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应region的目录下,然后再将失效的region重新分配,领取 到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复

 

HBase容错性
Master容错:Zookeeper重新选择一个新的Master
无Master过程中,数据读取仍照常进行;
无master过程中,region切分、负载均衡等无法进行;
RegionServer容错:定时向Zookeeper汇报心跳,如果一旦时间内未出现心跳,Master将该RegionServer上的Region重新分配到其他RegionServer上,失效服务器上“预写”日志由主服务器进行分割并派送给新的RegionServer
Zookeeper容错:Zookeeper是一个可靠地服务,一般配置3或5个Zookeeper实例
Region定位流程:

寻找RegionServer

ZooKeeper--> -ROOT-(单Region)--> .META.--> 用户表

-ROOT-
表包含.META.表所在的region列表,该表只会有一个Region;

Zookeeper中记录了-ROOT-表的location。

.META.

表包含所有的用户空间region列表,以及RegionServer的服务器地址。

  • Hbase使用场景

storing large amounts  of data(100s of TBs)
need high write throughput
need efficient random access(key lookups) within large data sets
need to scale gracefully with data
for structured and semi-structured data
don't need fullRDMS capabilities(cross row/cross table transaction, joins,etc.)

大数据量存储,大数据量高并发操作

需要对数据随机读写操作

读写访问均是非常简单的操作

  • Hbase与HDFS对比
两者都具有良好的容错性和扩展性,都可以扩展到成百上千个节点;
HDFS适合批处理场景
不支持数据随机查找
不适合增量数据处理

不支持数据更新


 

  • 参考文档:

1、http://www.alidata.org/archives/1509(存储模型比较详细)

2、http://www.searchtb.com/2011/01/understanding-hbase.html技术框架以及存储模型

3、http://wenku.baidu.com/view/b46eadd228ea81c758f578f4.html(读和写的流程比较详细)

分享到:
评论

相关推荐

    大数据书籍-Hbase架构设计(高清)

    通过阅读《Hbase架构设计》这本书,读者不仅可以掌握Hbase的基本概念和技术细节,还能学习到如何在实际项目中有效地应用和优化Hbase,从而在大数据处理领域建立起坚实的Hbase技术基础。书中的《HBase应用架构.pdf》...

    HBase企业应用开发实战-高清

    首先,本书将带你了解HBase的基本概念和功能,包括其分布式架构、表和行键的设计、列族的概念以及时间戳的使用。这些基础知识是理解HBase工作原理的关键,对于开发者来说,能够帮助他们在设计数据模型时做出合理的...

    HBase应用场景原理与基本架构共40页.pdf.zip

    这份"40页的HBase应用场景原理与基本架构"文档,很可能是对HBase的深度解析,包括其核心概念、工作原理、实际应用案例以及如何构建和扩展HBase集群。 首先,HBase的基本架构由Region Server、Master Server、...

    hbase原理和设计

    ### HBase原理与设计 #### 一、HBase概述 HBase是一个开源的、高性能的分布式存储系统,基于Hadoop之上构建。它提供了一个高度可靠、面向列的存储方案,适用于处理大规模的数据集。HBase的设计特点包括: 1. **高...

    hbase 学习 hbase原理 hbase资料

    在深入了解HBase之前,我们先来理解一下它的基本概念。 HBase是构建在Hadoop文件系统(HDFS)之上的,它利用了Hadoop的分布式存储能力。这意味着HBase的数据是跨多台服务器分布式存储的,提供了高可用性和容错性。...

    HBase应用架构PDF版本

    《HBase应用架构》这本书会详细讲解这些概念,并提供实践案例,帮助读者深入理解如何设计和管理HBase集群,以及如何解决实际遇到的问题。通过阅读这本书,读者可以掌握HBase的核心原理和最佳实践,从而在大数据处理...

    HBase企业应用开发实战-马延辉 孟鑫

    1. **HBase基础**:书中首先介绍了HBase的基本概念,包括其架构、表模型、行键、列族、时间戳等核心元素。理解这些基础知识是进一步学习HBase的关键。 2. **HBase安装与配置**:书中详细阐述了HBase的安装过程,...

    HBase企业应用开发实战.rar

    首先,书中会详细介绍HBase的基本概念,包括其分布式存储模型、行与列族的概念、时间戳以及版本管理等。这些基础知识将帮助读者理解HBase如何处理PB级别的数据,并实现水平扩展性。HBase的设计理念是为了解决大规模...

    (转)HBase技术介绍

    在学习HBase时,了解其核心概念、数据模型、架构以及如何进行数据读写和查询是基础。同时,掌握Zookeeper的使用、HBase的运维和优化技巧,以及如何与其他Hadoop生态组件(如Hadoop MapReduce、Hive、Spark等)集成,...

    HBase学习利器:HBase实战

    - **第1章:介绍HBase**:本章介绍了HBase的概念、架构以及与其他NoSQL数据库的比较。此外,还讨论了HBase的核心组件及其在Hadoop生态系统中的位置。 - **第2章:入门指南**:通过一个简单的例子来展示如何安装...

    Hbase 官方中文文档

    HBase官方中文文档概述了Apache HBase TM的基本概念、配置方法、升级策略、shell使用、数据模型、架构设计、安全机制、API接口、性能调优以及故障排除等多方面的知识。HBase是一个开源的非关系型分布式数据库(NoSQL...

    HBase@不睡觉书副本.rar

    这本书深入浅出地介绍了分布式数据库HBase的核心概念、设计原理以及实际应用,旨在帮助读者快速掌握这一强大的大数据存储系统。 HBase,全称为Apache HBase,是构建在Hadoop文件系统(HDFS)之上的分布式、版本化、...

    hbase权威教程

    1. HBase的基本概念和架构:了解HBase的分布式存储模型,理解Region、RegionServer、Master节点和Zookeeper的作用。 2. 数据模型:理解行键、列族、时间戳和版本的概念,学习如何设计高效的数据模型。 3. HBase操作...

    大数据【经典书籍】:HBase不睡觉书 带目录(高清)【608页】.zip

    本书首先会介绍HBase的基本概念,包括其设计哲学、架构以及与Hadoop的关系。读者将了解到HBase如何在大规模集群上提供实时的数据访问,并理解HBase的核心特性,如表的设计、数据模型、行键与列族的概念。 接着,书...

    Learning HBase(中文版)

    这本书旨在帮助读者深入理解HBase的原理、架构以及实际应用。 在大数据领域,HBase因其高效的数据处理能力和强大的扩展性而备受青睐。它提供了实时读写、水平扩展以及强一致性的特性,这使得HBase成为处理PB级别...

    HBase配置文件与HBase doc文档

    2. **架构**:详细解释了HBase的分布式架构,包括Master节点、RegionServer、Region、Column Family等概念。 3. **数据模型**:列族式数据库的数据模型与传统的关系型数据库不同,文档会讲解HBase的行、列族、列、...

    \"HBase_介绍和HBase云存储\"分享总结

    首先,我们从HBase的基本概念和功能入手。 HBase是一个分布式、列式存储的NoSQL数据库,基于Google的Bigtable设计思想开发,运行于Hadoop之上。它提供高可靠性、高性能、实时的数据存储和访问能力,特别适合处理...

    hbase_常用配置参数_以及学习笔记讲解_以及各种原理图.zip

    在这个“hbase_常用配置参数_以及学习笔记讲解_以及各种原理图.zip”压缩包中,包含了一系列关于HBase关键概念、配置参数和原理的资料,通过以下几部分来详细介绍这些内容: 1. **HBase架构原理**: HBase采用列式...

    hbase 教程 简单易懂 初学者必备

    尤其对于初学者而言,掌握HBase的基本概念、操作与应用是至关重要的。本文将依据“hbase教程”这一主题,深入浅出地介绍HBase的核心知识,帮助初学者快速入门。 1. **HBase概述** HBase是构建在Hadoop之上的开源...

Global site tag (gtag.js) - Google Analytics