HBase,是Hadoop DataBase. 面向列的分布式数据库, 思想来源于Google的BigTable思想,它的目标是在廉价硬件构成的集群上管理超大规模的稀疏表。

Hbase的物理结构

HBase是建立在HDFS上的面上列的数据库。  由于HDFS不支持update操作,只支持delete和insert操作。所以,Hbase对表的操作也不支持update,同时也不支持delete, 只有一个insert的操作,所有的操作都是insert操作。当删除时,就是向表里面插入一行数据,并加上删除标记。update时,就向表里插入一条数据,根据时间戳来区别。

Hbase的物理存储

根据上图显示,和HDFS相似, HDFS使用一个namenode节点管理datanode节点,datanode有很多数据块组成。Hbase也是采用了一个HMater管理多个HRegionServer(相当于HDFS的datanode),HRegionServer是一个物理服务器,负责管理该服务器上的Region,相应客户端的读写请求,划分区域和报告本服务器上Region的信息。

Hbase是一个面向列族的数据库,在创建表的时候,就要确定列族,这点和关系型数据库比较类似,但是列可以在插入的时候确定,这点和nosql数据库比较类似,所以Hbase是一个介于关系数据库和非关系数据库之间的数据库。

HBase的各个组件的功能。

HBase有个组件, Client,  Z00Keeper, HMaster, RegionServer, Region

HBase也是采用了master/slaver架构, 其中master是HMaster, slaver是RegionServer, 它的功能是管理和全新安装RegionServer, 对RegionServer进行负载均衡,将region分配给已经注册的regionserver,恢复RegionServer的故障等。 RegionServer负载与client进行读写操作以及零个或者多个region的管理,region的切分,并通知master用子区域代替父区域。  client端读写操作获得RegionServer的位置是通过-root, meta两个表中的数据获得的,靠这两个表中的数据来控制位置信息。 这是采用了BitTable的三层索引结构。并且Client端会cache这两个表中的数据,以增加速度。

一个Region多个列族, 每个列族一个memstore, 一个blockcache, 多个HFile.一个region一个HLog文件。列族之间是相互隔离的。

ZooKeeper中有很多信息,包括有哪些节点,每个节点什么角色,regionServer的运行状态, 以及root表的位置,以及master锁的维护等,如果区域的分配过程中有服务器崩溃,就通过ZooKeeper来进行协调,ZooKeeper的状态可以帮助恢复。

HBase的存储结构 HBase----Table----Region----ColumnFamily-----StoreFile

对hbase的学习的更多相关文章

  1. Hbase深入学习(六) Java操作HBase

    Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...

  2. Hbase深入学习(二) 安装hbase

    Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...

  3. Hbase深入学习(一) 什么是hbase

    Hbase深入学习(一) 什么是hbase 一.hbase是什么?      首先hbase是一个在Hadoop的HDFS分布式存储系统上介于映射(key/value)的nosql的分布式数据库:它通 ...

  4. Hadoop学习---Hadoop的HBase的学习

    Hbase Hbase的特点: Hbase是bigtable的开源的仿制版本 建立在HDFS之上 可靠性,靠性能 大:一个表可以有上亿行,上百万列 面向列:面向列(族)的存储和权限控制,列(族)独立检 ...

  5. HBase框架学习之路

    1 背景知识 1.1 解决问题 解决HDFS不支持单条记录的快速查找和更新的问题. 1.2 适用情况 存在亿万条记录的数据库,只有千万或者百万条记录使用RDBMS更加合适 确保你的应用不需要使用RDB ...

  6. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型,它存储的是 ...

  7. Hadoop学习笔记—15.HBase框架学习(基础实践篇)

    一.HBase的安装配置 1.1 伪分布模式安装 伪分布模式安装即在一台计算机上部署HBase的各个角色,HMaster.HRegionServer以及ZooKeeper都在一台计算机上来模拟. 首先 ...

  8. 【HBase】学习笔记

    HBASE 1 简介 1.1 官网 1.1.1 http://hbase.apache.org/ 1.1.2 Apache HBase™ is the Hadoop database, a distr ...

  9. hbase shell学习-2

    一个学生成绩表的例子来演示hbase的用法. name grade course math english Tom 5 97 87 Jim 4 89 80 表的创建:语法:create '表名称',' ...

随机推荐

  1. Date类型,Boolean类型,Number类型

    1.Date类型:  1)创建Date对象:    var date=new Date();  //Date对象会把当前日期和时间保存为其初始值 2)Date对象的方法:    --这些得到的都是数字 ...

  2. (2) 深入理解Java Class文件格式(一)

    好文转载:http://blog.csdn.net/zhangjg_blog/article/details/21486985 Class文件在Java体系结构中的位置和作用 在上一篇博客中, 大致讲 ...

  3. 【转】ini载入保存类,操作INI配置文件方便的很

    /****************************************************************** * * ^_^ 恶猫 独门商标 挖哈哈 * * QQ:\> ...

  4. 从零开始学iPhone开发(5)——使用MapKit

    (转)Leonbao:MapKit学习笔记 1.概述插入MapView,设置Delegate(一般为Controller),Annotations记录兴趣位置点(AnnotationView用来显示兴 ...

  5. nodejs的express使用介绍

    Express框架 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 概述 运行原理 底层:http模块 什么是中间件 use方法 Express的方法 all ...

  6. 《BI那点儿事》三国人物智力分布状态分析

    献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论,加深对传奇三国时代的了解数据分析基础概念:数据分为“不可测量”的数据和“可测量”的数据.不可测量的数据称为“分类数据”(Category Data或 ...

  7. 03-第一个C语言程序的分析

    本文目录 一.代码分析 二.开发和运行C程序的步骤 三.总结 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语 ...

  8. Flex Excel下载

    最近做Flex里的Excel下载,用as3xls进行Excel导出后,Excel修改编辑后老出现:不能以当前格式保存...若要保存所做的更改,请单击“确定”,然后将其另存为最新的格式. 最后通过JAV ...

  9. Android SDK Manager 更新不了文件 提示https://dl-ssl.google.com refused

    sdk manager无法自动更新,总在提示超时!!!SDK更新时的“https://dl-ssl.google.com refused”错误 解决方法: 在Android SDK Manager-& ...

  10. jQuery核心之 $

    参考jQuery官网API文档 $ 和 $() 的区别很重要: 1.$(document).ready() 和 $(document).load() 的 区别:     前者等到DOM准备好了之后就会 ...