OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3340|回复: 2

数据库——Hbase初体验

[复制链接]

37

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
485
金钱
485
注册时间
2017-10-31
在线时间
61 小时
发表于 2018-1-5 11:16:26 | 显示全部楼层 |阅读模式
Hbase初体验1. Hbase简介
Habse全称为Hadoop Database,是一个高可靠、高性能、面向列、可伸缩的分布式非结构化数据库。用来存储大规模的半结构化和非结构化的松散数据。生产上通常是利用廉价的pc server搭建大规模的hbase集群。Hbase的底层是依赖hdfs作为文件存储系统,zookeeper为其提供协同服务,可以使用mapreducehive等对hbase的表数据进行分析处理。
1.1 habse的表结构模型
hbase中,数据是以表的形式存在的,表内由行和列族组成,列族里可以是一列也可以是若干列。
表格 1.1 hbase表格式
Row Key
column-family1
column-family2
column-family3
column1
column2
column1
column2
column3
column1
Row key1
t1:abc
t2:gdxdf
t4:dfads
t3:hello
t2:world
Row key2
t3:abc
t1:gdxdf
t4:dfads
t3:hello
t2:dfdsfa
t3:dfdf
Row key3
t2:dfadfasd
t1:dfdasddsf
t2:dfxxdfasd
t1:taobao.com
如上图所示,row key1row key2row key3是三条记录的唯一的row key值,column-family1,column-family2,column-family3是三个列族,每个列族下又包括几列。比如 column-family1这个列族下包括两列,名字是column1column2t1:abct2:gdxdf是由row key1column-family1-column1唯一确定的一个单元cell。这个cell中有两个数据,abcgdxdf。两个值的时间戳不一样,分别是t1,t2, hbase会返回最新时间的值给请求者。
Row key:行键,是表用来检索数据记录的主键,表数据的查询是按照row key的值来排序的。它可以是任意的字符串,最大长度为64KB,通常设计rowkey的长度在10-100bytes。内容可以由使用的用户自定义。它在hbase里被保存为字节数组。Row key设计必须满足业务的需求,能够确保查询能更加方便快捷。
        访问hbase table的行,有三种方式:
1.通过单个的row key访问
2.通过row keyrang
3.全表扫描
Column familyhabse表里的每一个列都是归属于某个列族,列族是表chema的一部分(而列不是),列名都是以列族为前缀。例如coursesartscoursesenglish 都是属于courses这个列族。也就是说列族由若干列组成,列族支持动态扩展,所以跟关系型数据库不同的是无需预先定义列的数量以及类型,所有的column都是以二进制格式存储,用户需要自行进行类型转换。对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
单元Cellhbase中通过rowcolumns确定为一个存储单元称为cell。由{row keycolumn(=<family>+<label>),version}确定唯一的单元。Cell中的数据是没有类型的,全部都是字节码形式存储的。
时间戳:每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位整数。时间戳可以由hbase在数据写入时自动赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。
1.2 单机模式搭建与测试
该模式下,Hbase使用的是本地文件系统,而非Hdfs,所有的服务和zookeeperhbase里面带有内置的zookeeper)都运行在JVM中。Zookeeper监听一个端口,这样客户端就可以连接Hbase了。
1)解压hbase包到当前用户家目录
Shell Code
清单 01
1
2
$ cd ~
$ tar zxvf hbase-1.0.0-cdh5.5.2.tar.gz
2修改配置文
Shell Code
清单 02
1
2
3
4
5
6
7
8
vim conf/hbase-site.xml

<configuration>
<property>
<!—region server的共享目录,单机模式是在本地。-->
<name>hbase.rootdir</name>
<value>file:////home/hadoop/hbase-1.0.0-cdh5.5.2/data</value>
</property>
</configuration>
        hbase-env.sh里将JAVA_HOME指向到你Java的安装目录。
Shell Code
清单 03
1
2
$ vim conf/hbase-env.sh
export JAVA_HOME=/usr/local/share/jdk1.7.0_25
export HBASE_MANAGES_ZK=true
        3)启动Hbase 进入hbasebin目录里开启hbase服务
Shell Code
清单 04
1
2
$ cd bin
$ ./start-hbase.sh
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA553.tmp.jpg
01
4)用shell连接hbase
Shell Code
清单 05
1
$ ./hbase shell
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA5E1.tmp.jpg
02
        5)测试
创建表aaa,列族为people
Shell Code
清单 06
1
create 'aaa','people'
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA601.tmp.jpg
03
        插入数据 put  ‘表名’,’rowkey’,’列族名:列名’,’值’。
Shell Code
清单 07
1
2
3
put 'aaa','row1','people:cn','12333'
put 'aaa','row2','people:us','133'
put 'aaa','row3','people:uk','2133'
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA621.tmp.jpg
04
        全局浏览表aaa
Shell Code
清单 08
1
scan 'aaa'
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA661.tmp.jpg
05
        通过rowkey get一行数据。
Shell Code
清单 09
1
get 'aaa','row2'
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA671.tmp.jpg
06
        禁止操作表aaa,禁止之后,就不能再操作该表否则会报错。
Shell Code
清单 010
1
disable 'aaa'
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA692.tmp.jpg
07
        删除表,先使用disable禁止表之后再使用drop删除表。
Shell Code
清单 011
1
drop 'aaa'
file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml\wpsA6B2.tmp.jpg
08
        关闭shell
Shell Code
清单 012
1
exit
        停止hbase服务
Shell Code
清单 013
1
./stop-hbase.sh

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

37

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
485
金钱
485
注册时间
2017-10-31
在线时间
61 小时
 楼主| 发表于 2018-1-5 11:18:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

37

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
485
金钱
485
注册时间
2017-10-31
在线时间
61 小时
 楼主| 发表于 2018-1-9 11:44:24 | 显示全部楼层
数据库,你了解吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 00:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表