HBase介绍,工作原理,增删改查。

简介:

HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统,HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。利用Hadoop HDFS作为其文件存储系统

由Hive和mysql作为引子来介绍HBase

Mysql和Hive,都是用来管理数据的,但是有区别。读写速度上,mysql很快,hive因为底层实mapreduce所以速度没有mysql快。mysql能进行文件的修改,而hive则不行。数据仓库管理软件,历史数据统计,构建数据仓库,运算能力强。

mysql为什么不用理构建数据仓库,容量问题,hive存储在hdfs中容量大。mysql适合联机事务处理:交互性强,在线实时。

HBase可以快速实时操作数据。CRUD,也可以构建联机事务处理。Nosql数据库。

 

HBase的特性: 

  • 数据的持久化存储基于HDFS--存储容量随时在线扩容
  • CRUD的功能模块:分布式系统。---分布式数据库系统
  • NoSql表结构:表明、rowkey(行键唯一标识),列族(可以好多列)
  • 同一数据可以多版本,查的话默认最新版。
  • 插入的数据自动排序,先看行键,再看列族,再看列名key的字典顺序。
  • 没有数据类型,都是二进制数组,在hbase内部。byte[]   rowkey  key  value 表名 列族名

HBase表结构:

建一个表如果一直往里面放数据,数据很大,查的时候就慢了,都往一台表中查,请求很多的时候效率很低。

多做几台服务器?cli请求找哪台?-->服务器分任务,每个服务器负责表中的一部分,按照行键的范围-->region0,1,23...

客户端查的时候按照行键去找相应的服务器(region)-->最终也得去hdfs中查(实际数据存储在那里)。

如果都去一个文件找数据,底层文件也是在block中,某个datanode还会被频繁请求,吞吐有限。---region也是有目录的,

而且列族也是有目录的,达到分散存储,不会平凡请求一个datanode。

HBase表的数据存在哪?HDFS,服务器只是帮用户操作数据,只做逻辑功能操作。其实这个服务器就是region server。

某个region server只能管一个region?可以管理很多个region(同一个表或者不同表),不管哪个表都分成若干个region,看服务器能力

某台机器挂了怎么办?---master 角色,不负责查数据,只负责监控server,

master如何知道server状态----用zookeeper,master监听server状态

master挂了怎么办 ?如果server正常依然可以查数据,不经过master。

hbase两种角色:

  • master:负责监控region  server。
  • region server :负责数据的CRUD ,一般部署到datanode,查数据可能不经过网络。

如果有一台region server挂了,master会把挂掉的region的任务交给其他region,

客户端找数据怎么知道在哪台region server??找meta表(记在了系统表里,在某台region server中),cli怎么知道meta表在哪里?zookeeper有何数据节点(meta-region-server),放了meta表放在了那个机器。

master和standby master组成解决单点故障。HA

根据 Meta 表中的数据,可以确定客户端所访问的 RowKey 所处的实际位置。

HBase工作机制图:

安装配置:1解压安装包2修改配置文件3

如何使用hbase:

注意没有sql,help查看哪些命令,

建表:create ‘表明’,‘列族名’,‘列族名’ ....

插数据:put ‘表名’,‘行键’,‘列族名:key’,‘value’

 

查询:get ‘表’,‘行键’,‘列族:key’     只写行键的话,查询列中所有内容

扫描:scan  ‘表’  全表扫描

delete:delete ‘表’,‘行键’,‘列族:key’

             deleteall ‘表’,‘行键’  删一行

删表:drop ‘表’ 得先停用。disable ‘表’

每个region都分配 一部分内存空间,热数据放在里面。

内存缓存热数据:插入数据量小的时候放在内存里面,刚刚被访问的数据叫热数据。如果宕机咋办?不会丢数据,对数据操作会记日志里(WAL)面到hdfs。

如果满了,写入到hdfs中,退出服务的时候也会写入到hdfs中。

 

 

 

以下为HBase其他博客相关介绍:https://blog.csdn.net/t894690230/article/details/80515426 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值