您当前的位置: 首页 >  hbase

宝哥大数据

暂无认证

  • 1浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

hbase学习00--hbase简介

宝哥大数据 发布时间:2017-02-05 16:32:22 ,浏览量:1

HBase简介
  • HBase – hadoop DataBase, 是一个

    • 高可靠性,包含下面两点:
    • 数据不可丢:由于Hbase依赖于HDFS, HDFS对数据进行备份,保证数据不会丢。
    • 服务不能挂: 由于Zookeeper(分布式协作服务管理), 保证服务的高可靠性。zookeeper实时的对集群状态进行监测, zookeeper内部有自动选leader,一旦leader挂了,将会在其他节点中选取一个leader,保证服务的高可靠性。
    • 高性能: 相对于传统的关系型数据库,读写速率是非常高。
    • 面向列:
    • 实时读写: 相应的时间为ms级 的分布型数据库。
  • 利用HDFS作为其文件存储系统

  • 利用MapReduce来处理HBase中的海量数据
  • 利用zookeeper作为其分布式协同服务
  • 数据类型:

    • 非结构化和半结构化的松散数据(列存NoSQL数据库)
    • 而传统的关系型数据库只能储存结构化数据
HBase数据模型 Row KeyTime Stampcf1cf2cf3chb.comt1cf2:k2=val2cf3:k3=val3t2t3cf1:a1=val1

- Row key

  • 决定一行数据
  • 按照字典顺序排序
  • Row Key只能存储64K字节数据

    • Column Family 列族 & qualifier 列
  • 每个列都属于某个列族, 列族必须是表模式(schema)定义的一部分预先输出。如:create 'test', 'course'.
  • cf:a 列族:列, 可以按需加入。
  • 权限控制, 存储以及调优都是在列族层面进行的。
  • HBase把同一列的数据存储到统一目录下的多个文件。

    • TimeStamp时间戳
    • 每个cell存储同一份数据, 有多个版本, 按照唯一时间戳来区分各个版本之间的差异。
    • 时间戳为64位整数
    • 为当前系统时间
    • 也可以由客户显示赋值, 如果应用程序要避免冲突, 就不必须自己生成一个惟一性的时间戳。

    • Cell单元格

  • 由行和列交叉决定
  • 单元格是由版本的,单元格对应的时间戳
  • 单元格中的内容是未解析的字节数组
    • 由{row key, column(=+), version}唯一确定的单元,
    • 注意cell中的数据是没有类型的,全是字节码形式

HBase中的存储数据到时以二进制的形式存储。

HBase体系架构

这里写图片描述

  • Client
    • 包含访问HBase的接口并维护cache来加快HBase的访问
  • Zookeeper

    • 保证任何时候, 集群中只有一个master.体现了服务高可用, 一旦挂了一个,将会启动一个。
    • 存储所有Region的寻址入口
    • 每创建一个表,就是一个Region, 当表的数据过大,将会分成多个Region。存储表的元数据信息:一个表分成几个Region,每个Region存在那个地方, 在自链表表的那个段,这些信息都存在Zookeeper。

    • 存储HBase的schema和table的元数据

    • Region是table的一部分。
  • HMaster,表的元数据信息都存在Zookeeper, HMaster相当于一个领导
    • 为RegionServer分配Region
    • 新来的一个Region,我要将他放在哪个Region
    • 负责RegionServer的负载均衡
    • 当创建一个表,生成一个Region, 持续向表中插入数据,达到了阈值, 将分裂成2个Region, 数据再增加,将会分裂成3、4、…100个。不能让这100个Region在这一个HRegionServer, 而其他RegionServer中没有Region, 为了数据均衡, 将部分Region迁移到其他的HRegionServer.相当于工作的分配,一个员工的工作过多,将分配她的任务给其他人。
    • 发现失效的RegionServer并重新分配其上的Region
    • 管理用户对table的增删操作
  • HRegionServer
    • 维护Region,处理对这些Region的IO请求
    • 负责切分在运行过程中变的过大的Region
      • 当RegionServer中的Region过多,HMaster将会做一个负载均衡。
HBase的数据模型
  • Region

    • 当创建一个表,生成一个Region, 持续向表中插入数据,达到了阈值, 将分裂成2个Region, 数据再增加,将会分裂成3、4、…100个。
    • 当表中的行不断增多,就会有越来越多的Region,在HMaster的调度写,使一个表被保存在多个RegionServer上。
  • Memstore与storefile

    • 一个Region由多个store组成,一个store对应一个CF(列族)
    • store包括位于内存中的memstore和位于磁盘中的storefile.写操作:先写入memstore,但memstore中的数据达到阈值, HRegionServer会启动flashcache进程系写入storefile, 每次写入形成一个单独的storefile。
    • 当storefile文件增长到一定阈值后, 系统会进行合并(minor,majar compcation), 在合并中进行版本合并和删除工作(majar),形成更大的storefile.
    • 当一个Region所有的storefile的大小和超过一个阈值后, 会把当前的Region分割成两个,并通过HMaster的调度, 分配到相应的HRegionServer中, 实现负载均衡。
    • 客户端检索数据,现在memstore找, 找不到载找storefile.
  • storefile 以HFile格式保存在HDFS上。

  • Hlog也是存在HDFS上。
关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0631s