HBase详解

一.什么是HBase:

1.Hbase是一个面向列的数据库,针对于大数据,起源于google的BigTable。
2.Hbae是一个高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。

1.面向列和面向行:

1.面向行存储:(不做详细的说明,可观察mysql存储数据的方式)
传统数据库,如mysql,sqlserver都是面向行的数据库,先定义一张表结构,给定表的字段,类型和限定,那么在向表中插入多条数据时,是一行一行的数据去填充每个单元,若有些字段的单元没有数据,则会默认为空,但会占用一定的空间。若在大数据存储中,则会造成大量的资源浪费,并且查询效率低下。
2.面向列存储:
相对于面向行的存储,面向列就是将一行数据切分为一条一条的数据,这些数据合并起来形成一行数据。先创建一张表,需给定表的名字,列族(一般规定一张表的列族为1-3个,最好为1个,即代表一类信息)。然后就可以向表中插入数据,插入时需定义列,即列族,列修饰符,还有其值。简单的说,就是不需要定义你必须输入什么值,你可以按照自己的需求来创建一个类似于Mysql的字段。
如图:在这里插入图片描述
在这张表中,看其中的一行数据,对应到右边的图形中就是多条数据,现在让我们来解析这一行数据:
1.row_key:不是唯一值,但确定唯一行,即相同的row_key合并起来,就是一行数据的值,row_key会进行字典排序
2.cf01:为创建的族,在创建表时就会创建族,这里只有一个族,他的下面有多个属性来修饰它
3.列修饰符:用来修饰列族的属性,类似于mysql中的字段,但在这里我们可以选择我们需要的来进行添加,列=列族+列修饰符
4.value:为列修饰符的具体值,如:name : 张三
5.timestamp:为时间戳,在hbase中,修改删除一条数据,不回去修改或删除原来的那一条,而是新增一条数据,此时这条数据会有一个新的时间戳,用于识别,hbase在选择数据的时候,会选取时间戳大的那一条。对应上图的第三条数据,时间戳为2,则hbase在拿数据的时候,不会去拿时间戳为2以前的数据。

二.HBASE集群:
hbase集群分为三个部分:zookeeper,hmaster,regionserver

1.zookeeper:扮演管理员的角色
1).检测hmaster的存活状态,确保hmaster始终只有一个
2).hmaster在启动的时候会将hbase系统表root发送给zookeeper,通过zookeeper可获取当前系统表,META,和region存储在哪个regioserver上
3). 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master

2.Hmaster:leader,只有一个
1). 为Region server分配region
2). 负责region server的负载均衡
3). 发现失效的region server并重新分配其上的region
4). HDFS上的垃圾文件回收
5). 处理schema更新请求,也就是meta,进行数据读写

3.regionserver:每个节点一个
如图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值