欢迎投稿

今日深度:

HBase基础,

HBase基础,


1.简介: Hbase是高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库 利用HDFS作为其文件存储系统利用mapreduce处理hbase中的海量数据利用ZooKeeper作为分布式协同服务 主要用来存储非结构化和半结构化的松散数据
2.概念介绍: rowkey 决定一行数据,按照字典顺序排序,只能存储64K字节数据 设计row key时,要充分利用这个排序特点,将经常一起读取的数据存储到一块,将最近可能会被访问的数据放在一块。
HBase中row key用来检索表中的记录,支持以下三种方式: · 通过单个row key访问:即按照某个row key键值进行get操作 · 通过row key的range进行scan:即通过设置startRowKey和endRowKey,在这个范围内进行扫描 · 全表扫描:即直接扫描整张表中所有行记录。
3.Rowkey规则 1、 越小越好 2、 Rowkey的设计是要根据实际业务来 3、 散列性 a) 取反   123 取反后为321 b) Hash
4.列族 hbase表中每个列都属于一个列族,列族作为表模式定义的一部分预先定义 列名是以列族作为前缀,每个“列族”都可以有多个列成员(column),新的列族成员(列)可以随后按需、动态加入 权限控制,存储以及调优都是在列族层面进行的 Hbase把同一列的数据存储在同一个目录中 不要在一张表里定义太多的column family。目前Hbase并不能很好的处理超过2~3个column family的表。因为某个column family在flush的时候,它邻近的column family也会因关联效应被触发flush,最终导致系统产生更多的I/O
5.时间戳: hbase中每个cell对同一个数据有多个版本,默认使用时间戳管理不同版本的数据按照时间倒序排序 时间戳的类型是64位整型 时间戳可以由hbase(在数据写入时自动)赋值 时间戳可以由客户赋值
6.cell单元格: 单元格是有版本的 由{rowkey,column(=family+qualifier),version}唯一确定的单元
7.HLog HLog文件就是一个普通的Hadoop Sequence File,Sequence File 的Key是HLogKey对象,HLogKey中记录了写入数据的归属信息,除了table和region名字外,同时还包括 sequence number和timestamp,HLog SequeceFile的Value是HBase的KeyValue对象
8.Hbase体系架构 注:StoreFile和HFile代表的同一个数据文件,StoreFile为内存数据,HFile为磁盘数据
ZooKeeper:
  • 保证任何时候集群都只有一个master
  • 存储所有Regionn的寻址入口,实时监控Region server的上线和下线信息
  • 存储Hbase的schema和table的元数据

Mater
  • 为Region server分配region
  • 负责Region server的负载均衡
  • 发现失效的Region server并重新分配其上的region
  • 管理用户对table的增删改操作

Region server 维护region,处理对这些region的IO请求 Region server负责切分在运行过程中变得过大的region
9.Hbase存储模型 Hbase自动把表水平划分为多个区域,每个region保存一个表里某段连续的数据,每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候
Hbase数据模型 HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元就表示不同的HRegion可以分布在不同的 HRegion server上 MemStore和storeFile 一个region由多个store组成,一个store对应一个Column Family store包括位于内存中的memstore和位于磁盘的storefile 写操作先写入memstore,当memstore中的数据达到某个阈值,hregionserver会启动flashcache进程写入storefile,每次写入形成单独的一个storefile 当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、major compaction),在合并过程中会进行版本合并和删除工作(majar),形成更大的storefile 当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个,并由hmaster分配到相应的regionserver服务器,实现负载均衡 客户端检索数据,先到Memstore中查数据,查不到就到BlockCache中查,再查不到就会到磁盘上读,并把读的结果放入BlockCache
Hbase DDL和DML

10.Hbase DDL: 1)删除一个列族 alter 'table_name',{NAME='CF_name',METHOD='delete'} 删除列族的时候必须先将表给disable disable 'table_name' 2)列出所有的表 list 3)drop一个表 disable table_name-->drop table_name

www.htsjk.Com true http://www.htsjk.com/hbase/40140.html NewsArticle HBase基础, 1.简介: Hbase是高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库 利用HDFS作为其文件存储系统 , 利用mapreduce处理hbase中的海量数据 , 利用ZooKeeper作为分布式协同...
相关文章
    暂无相关文章
评论暂时关闭