Hbase基础原理

发展历史

  • HBASE是建立在HDFS上的高性能数据库系统
  • 通过ROWKEY和主键的range来检索数据
  • HIVE支持多表的复杂操作
  • 主要是横向扩展,通过增加廉价的服务器,来提高计算能力
  • 表名,行健,列组,列,值

HBASE中的行只支持三种方式访问

1.通过单个ROWKEY访问
2.通过ROWKEY的范围访问
3.全表扫描

注意ROWKEY在HBASE的内部保存为“字节数组”,一般长度为100左右的BYTES

  • HBase中通过row和columns确定的为一个存贮单元称为cell。每个cell都保存着同一份数据的多个版本
  • 不同版本的数据按照倒序排序,最新的排在最前面
  • 时间戳可以自动赋值,也可以由客户端显示赋值,时间精确到当前时间系统毫秒
  • 都是按照字节码形式存储(CELL中)
  • Table 在行的方向上分割为多个Hregion


    此处输入图片的描述
    此处输入图片的描述
  • region按大小分割的,每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,Hregion就会等分会两个新的Hregion。当table中的行不断增多,就会有越来越多的Hregion


    此处输入图片的描述
    此处输入图片的描述
  • Hregion是Hbase中分布式存储和负载均衡的最小单元。最小单元就表示不同的Hregion可以分布在不同的HRegion server上。但一个Hregion是不会拆分到多个server上的


    此处输入图片的描述
    此处输入图片的描述
  • HRegion虽然是分布式存储的最小单元,但并不是存储的最小单元。
      事实上,HRegion由一个或者多个Store组成,每个store保存一个columns family。
      每个Strore又由一个memStore和0至多个StoreFile组成。如图:
      StoreFile以HFile格式保存在GFS上


    此处输入图片的描述
    此处输入图片的描述

系统架构

此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

ZOOKEEPER

1.保证任何时候。集群中只有一个MASTER
2.存储所有REGION的寻址入口
3.监控REGION SERVER,将其上线,下线的消息通知给MASTER
4.存储HBASE的图表,包括有那些TABLE,每个由那些列组(CF)

MASTER

 1.为region server分配region
 2.负责region server的负载均衡
 3.发现失效的regionserver并重新
 分配其上的region
 4.GFS上的垃圾文件回收
 5.处理schema(图表)更新请求

REGION SERVER

1 Region server维护Master分配给它的region,处理对这些region的IO请求
2 Region server负责切分在运行过程中变得过大的region
     可以看到,client访问hbase上数据的过程并不需要master参与(寻址访问zookeeper和region server,数据读写访问regione server),master仅仅维护者table和region的元数据信息,负载很低

推荐阅读更多精彩内容

  • 1. HBase介绍,Hbase是什么? HBase -- Hadoop Database ,是一个高可靠、高性能...
    奉先阅读 2,790评论 1 35
  • Hbase架构与原理 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang所撰写的Goo...
    全能程序猿阅读 83,606评论 2 37
  • 最近在逐步跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hb...
    飞鸿无痕阅读 45,000评论 19 257
  • 一、HBase简介 Hbase是什么 HBase是一种构建在HDFS之上的分布式、面向列、多版本、非关系型的数据库...
    便利蜂数据平台阅读 522评论 0 4
  • 一、HBase简介 Hbase是什么HBase是一种构建在HDFS之上的分布式、面向列、多版本、非关系型的数据库。...
    龙梦起飞阅读 4,204评论 1 6