HBase部分原理图和常用命令

简单介绍

构建在HDFS上的,用于存储海量数据的,面向列族的非关系型数据库

非关系型数据库(Nosql) 往往不会提供sql语句接口,只能使用特定的api

> 小知识点

HBase与MySQL比的优势
1,存的更多
2,查找更快

自身特点

面向列祖存储
列族_column family :拥有共同点的列放在同一个列族里,比如说列族是身体,那么里面就可以放胳膊列,腿列,腰子列之类的,列祖在创建表的时候一定要指定,而列可以在插入数据的时候指定
行键_rowkey :类似于主键,用来表示某条数据的唯一标识
海量存储
极易扩展
高并发

结构分析

hbase是个典型的master/slave主从架构,老大成为master,小弟叫做hregionserver。
hbase的表是由region(区,片)组成,表越大,region越多,一个regionserver能够管理多个region
在这里插入图片描述

zookeeper:1.元数据入口,知道元数据在哪,元数据在这里指的是一条数据(同一rowkey上的所有数据)位于哪张表的哪个regionserver管理的region上
2.master分配任务的时候需要先确定regionserver是否存活,master通过zookeeper动态感知regionserver上下线
3.帮master选举一个active的master
store:列族 client:客户端
region:片/区 hlog:日志
hlog:预写日志,为了防止停电等意外,写入数据时先把数据写到hlog上,再从hlog写到memostore里面, hlog也会同步到hdfs(保存hlog的机器爆炸的情况下可以从hdfs恢复)
storefile:可以理解为线程,将我们溢写的数据变成hfile
HMaster:管理regionserver
memstore:基于内存的,类似于hdfs的环形缓冲区,memostore到达一定百分比会溢写出来变成storefile,storefile里存储真实数据

hive元数据在mysql,hbase元数据存储在自身,放在meta表,meta在某个regionserver上,到底在哪个regionser上,zookeeper知道
一个regionserver管理一个hlog和多个region
每个region里含有一个store和多个storefile,每个storefile里含有一个file存储数据

读数据流程

在这里插入图片描述

写数据流程

在这里插入图片描述

常用命令

启动hbase需要先启动zookeeper

启动master(只需启动设置的一个)

bin/hbase-daemon.sh start master

启动regionserver(启动多个)

bin/hbase-daemon.sh start regionserver

hbase监控端口 16010
在master机器停止所有hbase

bin/stop-hbase .sh

HBase Shell基本操作(启动HBase集群后)

进入shell模式

bin/hbase shell

创建表
创建student表,info列族

create 'student','info'

插入数据

put ' 表名',' 行键',' 列族:列',数据
put 'student' ,'1001','info:id','1' 

查找全部

scan ' 表名'
scan ' student' 

范围查找(前闭后开)
查找1001之后,1003之前

scan ' student' ,{STARTROW=>'1001',STOPROW=>'1003'} 

也可分开写

scan ' student' ,{STARTROW=>'1002'} 包含1002
scan ' student' ,{STOPROW=>'1002'}不包含1001

精确查找

get ' 表名',' 行键',' 列族:列'
get 'student','1001','info:age'

清空表

truncate ' student'

删除表(只有先清空才能删除)

drop ' student'

删除整行

deleteall ' student','1001'

删除某一列
delect ’ student’,’ 1002’,’ info,age’
更改数据

put ' 表名',' 行键',' 列族:列',数据
put 'student' ,'1001','info:id','1' 

列里能存储多个版本数据,需要设置

获取多版本数据信息

versions的值代表最新的前几个版本
get ' student' ,'1001',{COLUME=>' info:age',VERSIONS=>3}

表student添加f1列族

hbase> alter 'student', {NAME => 'f1', VERSIONS => 3}

数据结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值