hbase 01(概述,体系结构,安装)

hbase是什么?

1、hbase是apache旗下的一款开源的,基于hdfs的,分布式的,面向列式存储的非关系型数据库
2、基于内存的,可以近似实时读写
3、基于hdfs,高可靠性,高扩展性
4、可以存储数十亿行*数百万列的大数据集
5、起源于google的《BigTable》
6、java语言编写的

hbase的作用

1、主要是用来存储非结构化的大数据集
2、基于内存,可以实现近似实时的读写
3、基于hdfs,高可靠性,高扩展性

hbase的特点

1、分布式的面向列式存储的非关系型数据库
2、hbase只支持byte[ ] 类型,不维护其他数据类型(二进制的所以区分大小写)
3、hbase没有固定的字段定义。
4、hbase中是以K-V键值对的形式存储的,K-V支持多版本,版本号就是时间戳
5、为了区分不同key的意义,引入了列族的概念,不同列族存储在不同的目录中,一个列族可能有多个文件
6、为了区分不同key代表的事物,引入了rowkey的概念,rowkey是不可重复的
7、表数据是存储在region中的,一个region可能是一张表或者一张表的一部分,region是有rowkey范围的
8、hbase的排序是先按照rowkey排序,然后按照列族排序,同一个列族按照key进行排序(字典排序)

hbase的优缺点

优:
1、提供高并发读写操作的支持
2、值为空就不存,节省空间
3、面向列式存储,可以动态增加列
缺:
1、不支持OLAP(联机分析处理)
2、虽然有phoenix,还是不支持比较复杂的查询

hbase的表模型(存储模型)

1、是面向列式存储的
2、数据是以K-V对存储的,可以用时间戳作为版本号
3、区分不同key的意义,引入列族
4、区分不同key代表的事物,引入rowkey
5、一个region可以有多个列族,当一个region的大小超过阈值,会进行切分。所以region可能是一张表或者表的一部分。region是有rowkey范围的。(建表时可以指定)
6、hbase中的排序(在内存中排序的),先按照rowkey排序,之后按照列族排序,最后按照同一行的K-V按照key字典排序

hbase的体系结构

在这里插入图片描述

组件说明:

  1. Client : hbase客户端,
    包含访问hbase的接口。比如,linux shell,java api。
    除此之外,它会维护缓存来加速访问hbase的速度。比如region的位置信息。
  2. Zookeeper :
    监控Hmaster的状态,保证有且仅有一个活跃的Hmaster。达到高可用。
    它可以存储所有region的寻址入口,meta表在哪一台服务器上。
    实时监控HregionServer的状态,感知HRegionServer的上下线信息,并实时通知给Hmaster
  3. HMaster :
    为HRegionServer分配Region(新建表等)。
    负责HRegionServer的负载均衡。
    负责Region的重新分配
    HRegionServer宕机之后的Region分配,
    HRegion裂变:当Region过大之后的拆分)。
    Hdfs上的垃圾回收。
    处理schema的更新请求
  4. HRegionServer :
    1. 维护HMaster分配给的Region(管理本机的Region)。
    2. 处理client对这些region的读写请求,并和HDFS进行交互(Hlog的写入,HFile的读写)。
    3. 负责切分在运行过程中逐渐变大的Region。
  5. HLog :
    1. 对HBase的操作进行记录,使用WAL写数据,优先写入Hlog.
      比如:put操作时,先写日志再写memstore,这样可以防止数据丢失,即使丢失也可以回滚。
  6. HRegion :
    1. HBase中分布式存储和负载均衡的最小单元,它是表或者表的一部分。
  7. Store :
    1. 相当于一个列簇
  8. Memstore :
    1. 内存缓冲区,用于将数据批量刷新到hdfs中,默认大小为128M
  9. HStoreFile :
    1. 和HFile概念一样,不过是一个逻辑概念。HBase中的数据是以HFile存储在Hdfs上。

组件之间的关系

hmaster:hregionserver=1:*
hregionserver:hregion=1:*
hregionserver:hlog=1:1
hregion:hstore=1:*
store:memstore=1:1
store:storefile=1:*
storefile:hfile=1:1

hbase的安装(完全分布式)

1、上传,解压,更名,配置环境变量

2、修改hbase-env.sh(指定jdk以及禁用内置zookeeper)

3、修改hbase-site.xml

4、修改regionservers

5、将hadoop的core-site.xml和hdfs-site.xml拷贝到hbase的conf 目录下

6、在conf下创建备用Hmaster的文件,文件下写入备用Hmaster的主机名

7、集群的免密和时间同步必须做好(集群节点之间时间差不能超过30s)

8、将hbase和配置文件分发到其他机器上

hbase的shell

一个指令:help

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值