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. [转]Win7 64位搭建本地SVN服务器 Apache+Subversion

    转载地址:http://blog.sina.com.cn/s/blog_4f072a7001015j5z.html 一.工具下载 01.SVN 服务器Subversion:Setup-Subversi ...

  2. ASP值view State

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. python(二)数据类型

    一.整数 创建方法 i = 10 i = int(10) i = int("10",base=2)  #“”中是几进制的表示,base是选择要表示的进制,如base=2,用2进制的 ...

  4. Web的Ajax应用开发模式(三)——Ajax的开发

    Ajax是XMLHttpRequest对象和JavaScript.CSS.HTML.DOM等多种技术的结合. 此处重点强调XMLHttpRequest的以下特点,所以测试人员在测试到WEB的Ajax应 ...

  5. 合并基因表达水平(merge gene expression levels, FPKM)

    使用tophat和cufflinks计算RNA-seq数据的表达水平时,当一个基因在一个样本中有多个表达水平时需要合并它们的表达水平. This code is a solution to colla ...

  6. HR数据抽取:通过 Read Master Data 转换规则读取时间相关主属性数据

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. JS中的各种类型转换规则(转)

    JS中的类型转换非常恶心,大家都懂的,不过该学还是要学. 今天看犀牛书看到了转换规则,总结出来. X转字符串.数字.布尔值 X表示各种类型的值,直接上图: 值 转数字 转字符串 转布尔值 undefi ...

  8. Android 检查手机网络是否可用

    添加网络状态权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 代 ...

  9. Docker中的镜像分层技术详解

    早在集装箱没有出现的时候,码头上还有许多搬运的工人在搬运货物,在集装箱出现以后,码头上看到更多的不是工人,而且集装箱的搬运模式更加单一,更加高效,还有其他的好处,比如:货物多打包在集装箱里面,可以防止 ...

  10. windows 无法分析或处理 pass 报错问题汇总

    日光月华 发表于 2015-2-9 22:02:42 https://www.itsk.com/thread-346404-1-1.html 系统封装失败遇到windows 无法分析或处理 pass ...