hbase学习00--hbase简介

    xiaoxiao2021-03-26  20

    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上。
    转载请注明原文地址: https://ju.6miu.com/read-661002.html

    最新回复(0)