start-dfs.sh
,然后启动Hbasestart-hbase.sh
与Hbase Shellhbase Shell
,进入shell命令提示符状态。概念:HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
行键 | 列簇:cf1 | 列簇:cf2 | ||
---|---|---|---|---|
列:名字 | 列:年龄 | 列:电话 | 列:地址 | |
001 | 张三 | 18 | 兰州 | |
002 | 李四 | 19 | 13898986767 | 北京 |
行键(RowKey):可以理解成MySql中的主键列。系统会默认一个属性作为行键,通常把添加数据操作时表明后的第一个数据作为行键。
列(Column):可理解为MySql列,可以属于某个列簇,也可以不属于。
列簇(Column Family):两个特性:多个列聚合成一个列簇,可以将一个宽表切分成几个表,查询时将一整行数据以列簇形式部分返回;对应到文件存储结构,不同列簇会写入不同的文件。
create 'student','name','sex','age','dept','course'
#创建一个student表,属性可能是列可能是列簇,输入数据时确定。
describe 'student'
#用describe命令查看表student的基本信息。
list
#查看所有表
disable 'student'
#屏蔽表,删除一个表前要先屏蔽再drop删除
drop 'student'
put 'student','01','name','liming'
#添加数据:put ‘表名称’ ,‘行名称(Row Keys)’,‘列名称’ ‘值’,此代码表示给表student添加学号为01,名字为liming的一行数据,行键为01。
put 'student','01','性别','女'
put 'student','01','course:math','80'
#列簇 “:”之后计数该列簇下的列,可以在输入数据时定义。
get 'student','01'
#查看01行的数据
scan 'student'
#查看整个表的数据
注:汉字不能直接表示,Hbase是二进制保存数据的,程序解决汉字显示问题
delete 'student','01','性别'
#删除列数据
get 'student','性别'
#查看是否还有“性别”列
deleteall 'student','01'
#删除01行数据
scan 'student'
#查看整个表的数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w7xdONqw-1604461698614)(D:\大学\大三\大数据平台搭建\hbase.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fCtzLSR9-1604461698618)(D:\大学\大三\大数据平台搭建\删除表重键.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1HLxf0Yy-1604461698622)(D:\大学\大三\大数据平台搭建\增加数据查看.png)]
(img-fCtzLSR9-1604461698618)][外链图片转存中…(img-1HLxf0Yy-1604461698622)]