`
m635674608
  • 浏览: 4930904 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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适合批处理场景
不支持数据随机查找
不适合增量数据处理

不支持数据更新

 

 

http://my.oschina.net/u/923508/blog/393766

分享到:
评论

相关推荐

    hbase-思维导图.xmind.zip

    全面描述大数据列式存储HBase知识,涵盖概念、架构、工作原理、Hbase优化、读写流程、系统优化等方面。本思维导图内容全面,同时对Flush、compaction工作原理进行深度总结。是个非常不错的资源!

    大数据原理与应用课程设计

    了解大数据相关技术的基本概念与原理,了解Windows操作系统、Linux操作系统、大数据处理架构Hadoop的关键技术及其基本原理、列族数据库HBase概念及其原理、数据仓库概念与原理、关系型数据库概念与原理、R语言概念与...

    HBase总结(超详细)

    分数不让我设定(最好是0)包含原理概念、架构、单机安装、分布式安装,HBase的优化及Phoenixd的一点拓展知识,二叉树,B树等等。。

    大数据习题(2024)-大数据概述部分主要考查了大数据的基本概念、特征、发展阶段、思维转变、计算模式等基础知识

    HBase部分着重考查了HBase作为分布式NoSQL数据库的数据模型、架构设计、基本概念和shell命令操作。 MapReduce部分主要考查了MapReduce这一分布式计算模型的原理、编程实现和与传统并行计算框架的区别。 数据仓库Hive...

    HBase企业应用开发实战

    本书着重介绍了HBase的工作原理和设计架构,同时在实际工作的应用场景上亦着墨很重,大数据的神秘不仅仅在于具体的技术细节,更多的是由于它是个新生事物,很多人并不很清楚大数据的技术架构应如何设计,应用场景...

    教学大纲厦门大学-林子雨-大数据技术原理与应用

    课程将系统讲授大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、流计算、图计算、数据可视化以及大数据在互联网、生物医学...

    厦门大学大数据技术原理与应用

    •系统地论述了大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、流计算、图计算、数据可视化以及大数据在互联网、生物医学...

    大数据习题-这是一份大数据相关的考试试卷和一些课程内容概述

    3. HBase部分着重考查了HBase作为分布式NoSQL数据库的数据模型、架构设计、基本概念和shell命令操作。 4. MapReduce部分主要考查了MapReduce这一分布式计算模型的原理、编程实现和与传统并行计算框架的区别。 5. ...

    HCIP-Big Data Developer V2.0视频.zip

    2.7 Spark SQL架构原理 2.8 Spark SQL开发 2.9 数据采集工具 3.1 前言和概念 3.10 SQL ON HBase 3.11 HBase API使用 - 创建删除表 3.12 HBase API使用 - 读取数据 3.13 HBase优化 - 表设计 3.14 HBase优化 - 表...

    Spark技术内幕-深入解析Spark内核架构设计与实现原理(带书签目录)

    Spark 核心的概念是 Resilient Distributed Dataset (RDD):一个可并行操作的有容错机制的数据集合。有 2 种方式创建 RDDs:第一种是在你的驱动程序中并行化一个已经存在的集合;另外一种是引用一个外部存储系统的...

    新版Hadoop视频教程 段海涛老师Hadoop八天完全攻克Hadoop视频教程 Hadoop开发

    第一天 hadoop的基本概念 伪分布式hadoop集群安装 hdfs mapreduce 演示 01-hadoop职位需求状况.avi 02-hadoop课程安排.avi 03-hadoop应用场景.avi 04-hadoop对海量数据处理的解决思路.avi 05-hadoop版本选择和...

    大数据面试宝典 .docx

    描述Hadoop和Spark的基本概念和用途。 谈谈MapReduce的工作原理。 技术深度: 描述你在使用Hadoop或Spark时遇到的一个技术挑战,以及你是如何解决的。 详述HDFS(Hadoop Distributed File System)的架构和工作原理。...

    云计算第二版

    3.2.2 EC2基本架构及主要概念 97 3.2.3 EC2的关键技术 99 3.3.4 EC2安全及容错机制 101 3.3 简单存储服务S3 102 3.3.1 基本概念和操作 102 3.3.2 数据一致性模型 104 3.3.3 S3安全措施 105 3.4 简单队列服务SQS 107 ...

    数据处理OLTP与OLAP的概念.pdf

    本文简介OLTP和OLAP的工作原理,描述了OLAP和OLTP的工作场景、技术选型、特点及对比,希望大家喜欢! 在系统软件出现的初期,数据通常被保存在单个文件中进行管理,但随着业务的不断发展与 系统数据处理逻辑的不断...

    大数据中台架构栈.doc

    近来数据中台概念大火,大家对它的定义也五花八门,不一而足。但无论怎么定义,一 个完善的数据技术架构必不可少。了解这些架构里每个局部的位置,功能和含义,不仅 能让我们更好了解数据产品的范围和边界,知道技术...

    Hadoop实战丛书

    第8-11章全面地阐述了hadoop的i/o操作、hdfs的原理与基本操作,以及hadoop的各种管理操作,如集群的维护等;第12-17章详细而系统地讲解了hive、hbase、mahout、pig、zookeeper、avro、chukwa等所有与hadoop相关的子...

    java查看函数源码-BigDataArchitect:大数据架构师

    大数据架构师课程导读 1. bigdata_hadoop 2. bigdata_hive 3. bigdata_hbase 4. bigdata_hadoop_project 5. bigdata_redis 6. bigdata_zookeeper 7. bigdata_spark 课程大纲目录,持续更新中。。。 hadoop阶段: 1. ...

    7.SparkStreaming(上)--SparkStreaming原理介绍.pdf

    3.Spark编程模型(上)--概念及SparkShell实战.pdf 3.Spark编程模型(下)--IDEA搭建及实战.pdf 4.Spark运行架构.pdf 5.Hive(上)--Hive介绍及部署.pdf 5.Hive(下)--Hive实战.pdf 6.SparkSQL(上)--SparkSQL简介...

    由浅入深掌握大数据列式存储NoSQL数据库Kudu视频教程

    4.Kudu的分布式架构模型 5.Kudu中的特殊概念 6.Kudu的存储模型 第三章:Kudu的分布式环境部署 1.Cloudera Yum镜像配置 2.企业级分布式集群规划 3.企业级分布式计算安装 4.企业级集群管理配置 5.Kudu...

Global site tag (gtag.js) - Google Analytics