hbase --知识点总结

一、 Hbase 简介 

  -- hadoop  database ,是一种高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库 

  -- 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReducea来处理Hbase中的海量数据,利用zookeeper作为其分布式协同服务 

  --主要用来存储非结构化和半结构化的数据  (列式NOsql数据库 )

二 、hbase数据模型 

  --Hbase表中的每个列都归属于某个列族,列族必须作为表模式(schema)定义的一部分预先给出。

  --列名以列族作为前缀,每个列族都可以有多个列成员(column),如: course:math,course:english,新的列族成员可以随后按需动态加入 

  --权限控制、存储以及调优都是在列族层面进行的 

 --hbase把同一列族里面的数据存储在同一目录之下,由几个不同的文件夹保存。 

 ~TimeStamp 时间戳 

  --在Hbase每个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来进行区分,每个版本之间的差异,不同版本之间的数据按照倒叙进行排序,最新的版本数据排在最前面 

 --时间戳的类型是64位整形 

  --时间戳可以由hbase进行赋值,此时时间戳是精确到毫秒的当前系统时间 

  ~cell单元格 

  --由行和列的坐标交叉决定 

  --单元格是有版本的 

  --单元格的内容是未解析的字节数组 

  ~Hlog Hlog文件是一个普通的Hadoop Sequence File,记录了写入数据的归属信息 

~~  Hbase架构 

 

~ Client   包含访问Hbase的接口并维护cache来加快对Hbase的访问 

~ zookeeper作用  1、 保证任何时候集群只有一个master

    2、 存储所有的Region的寻址入口

    3、实时监控盘 Region server 的上线和下线信息,并实时通知master

   4、  存储Hbase的schema和table的元数据 

  Master

   为Region server 分配 region

   负责Region server 的负载均衡 

   发现失效的 Region Server 并重新分配骑上的region

    管理用户对table数据的增删改查 

 RegionServer

    RegionServer 维护 Region,处理这些Region的IO请求 

    Region Server 负责切分在运行过程中存储容量达到上限的region 

 Region  

    Hbase自动把表水平划分成多个区域(Region),每个region会保存一个表里面某段连续的数据  

     每个表一开始只有一个region,随着数据的不断插入,region不断壮大,当达到阈值上限的时候,region就会等分为两个新的region

    当table中的行不断的增多,就会有越来越多的region,这样一张完整的表就会被保存在多个regionServer之上  

MemStore 和 storefile

    一个region由多个store组成,一个store对应一个CF 

     store包括位于内存中的memstore和位于磁盘的storefile,写操作先写入memstore,当memstore中的数据达到某个阈值,Hregionserver会启动flashcache进程写入storefile,每次写入形成一个单独的storefile.

     当storefile的文件数量增长到一定阈值的时候,系统就会进行合并(minor、major、compation),在合并过程中会进行版本合并和删除工作,形成更大的storefile

     当一个region所有storefile的大小和数量超过一定阈值之后,会把当前的region分为两个,并有hmaster分配到相应的regionserver服务器,实现负载均衡。

     客户端检索数据,先在memstore找,找不到在找storefile

 Hregion是hbase中分布式存储和负载均衡的最小单元,最小单元就表示不同的Hregion可以分布在不同的Hregion server 上

    Hregion 是由一个或者多个store组成,每个store保存一个columns family 

    每个store 由一个mamstore和0到多个storefile组成。

写缓存 memstore 读缓存 blockcache                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

hbase的安装  :  

   --单节点hbase安装  

   注: hbase安装的时候需要在一台没有安装zookeeper的机器上面安装,主要是因为Hbase自带zk,zk的端口号是2181,如果在一台安装了zk的节点之上安装hbase就会由于端口号冲突,导致hbase不能启动 

    1、 将hbase安装包上传到linux服务器 

    2、 解压安装hbase安装包   删除说明文档  rm -rf docs/(提高节点之间的复制效率)

    3、 配置环境变量   vi /etc/profile   

          export HBASE_HOME= /root/hbase-0.98.12.1-hadoop2

          PATH=$PATH:$HBASE_HOME/bin

          source /etc/profile   (让刚刚修改的文件立即生效,执行shell命令 )

   4、cd /conf (修改相关配置文件 )

        vi hbase-env.sh   修改java环境变量的配置 

        vi  hbase-site.xml  修改hbase配置文件  

    

<property>
   <name>hbase.rootdir</name>
   <value>file:///home/testuser/hbase</value>
   </property>
  <property>
   <name>hbase.zookeeper.property.dataDir</name>
   <value>/home/testuser/zookeeper</value>
  </property>

   5、配置完成   启动hbase   start-hbase.sh  

         查看启动成功标志: 能够登录前台 node1:60010 页面  (加入配置没有问题还是无法进入页面:查看window环境防火墙以及linux环境防火墙是否关闭)

      启动hbase :start-hbase.sh 

      进入shell操作界面: hbase shell 

  6、hbase的常用操作命令: 

       创建一张表: create ‘tbl’,'cf'

       查看表是否创建成功: list  

       向一张表中插入数据: put 'tbl','1111','cf:name','zhangsan'     

       查看向一张表中新插入的数据: get 'tbl','1111'

       查看所有的数据: scan  'tbl'

       将缓存中的数据溢写:flush 'tbl'

       当数据量没有达到溢写阈值的时候,可以通过手动溢写,使数据落地到本地文件夹中  

       查看本地文件夹中的存放的hbase数据: cd /home/testuser/.....

      查看本地文件中的数据命令 : hbase hfile -p -f  +文件名 

      每生成三个文件会进行一次文件合并  

      hbase中没有删除操作,但是最新的数据会对旧数据进行版本覆盖  (数据版本具唯一性)

      被覆盖的数据在文件合并的时候会进行删除 

 7、 --HBASE 完全分布式的搭建  

        先去hbase官网官方文档查看分布式的安装流程

        分布式分为两种:伪分布式和完全分布式   

        1 、准备工作: jdk   网络 hosts  时间

        hbase 集群节点之间对时间同步要求很严格,因为hbase数据的版本是用时间来进行管理的 

        安装ntpdate 用ntpdate进行时间同步 yum install -y ntpdate (时间服务器)  --在每个集群节点都进行安装 

        查看ntpdate具体作用  man ntpdate  

       安装man    yum install -y man man-pages

       使用阿里巴巴提供的ntp进行时间同步 

       ntpdate ntp1.aliyun.com

       b)进行节点之间免秘钥操作 

       ssh -keygen

       ssh-copy-id -i  .ssh/id_rsa.pub node1 (复制公钥到各个节点)

       ssh-copy-id -i  .ssh/id_rsa.pub node2

       ssh-copy-id -i  .ssh/id_rsa.pub node3

       ssh-copy-id -i  .ssh/id_rsa.pub node4

      如果用这种免秘钥的方式 需要修改hadoop配置文件 hdfs-site.xml中的关于秘钥类型的配置文件 

      c)、安装hbase的时候yarn不需要启动但是hdfs需要进行启动 

      d)、解压

       e)、修改配置文件

       修改hbase是否要管理自己zookeeper的配置    hbase-env.sh

      

       修改hbase-site.xml

       

                  <property>
		    <name>hbase.rootdir</name>
		    <value>hdfs://mycluster/hbase</value>
		  </property>
		  <property>
		    <name>hbase.cluster.distributed</name>
		    <value>true</value>
		  </property>
		  <property>
		    <name>hbase.zookeeper.quorum</name>
		    <value>node2,node3,node4</value>
		  </property>

 修改 regionserver 配置 

配置具有regionserver的节点 

 node1 node2 node3  (配置要求:配置到有datanode的节点之上)

 创建文件backup-masters   备机节点  node4

 拷贝hadoop的hdfs-site.xml到hbase/conf/文件夹下

 将node1节点的数据进行分发  

    scp -r hbase-0.98.12.1-hadoop2 root@node2:/root/

   scp -r hbase-0.98.12.1-hadoop2 root@node3:/root/

scp -r hbase-0.98.12.1-hadoop2 root@node4:/root/

配置各个节点的环境变量   vi /etc/profile

    启动hbase过程:  

   a)、 关闭所有节点防火墙  service iptables stop

   b)、 启动zookeeper zkServer.sh start 

   c)、 启动HDFS start-dfs.sh 

   d)、 启动hbase   start-hbase.sh 

   e)、 启动点一节点服务   hbase-daemon.sh start master (当某个节点未能成功启动时可以使用)

查看是否启动成功: node1:60010   能够成功登陆才能说明启动成功了  

  

如图 证明三个节点都启动成功了 在备机节点上启动就不会看到上述三条信息 

  8、在hdfs中查看hbase中的信息 

  9、合并文件夹后的数据在文件夹中按照字典序进行排序

hbase 删除表的命令: 1、disabled 'tbl'  (作用:禁止当前表的使用状态)

2、drop 'tbl'

  清空表中数据的命名: truncate 'tbl'

用sql查询hbase中数据的方法:将hbase中列数据映射到hive的行中,就可以查询,需要将hive和hbase进行整合

phoenix apache.org  该工具也支持 

    

       

    

       

     

     

  

        

原文地址:https://www.cnblogs.com/wcgstudy/p/10508356.html