【实验目的】
1)了解hbase服务
2)学会hbase shell命令操作用户表
【实验原理】
HBase是一个分布式的、面向列的开源数据库,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据。本试验hbase提供了一个shell的终端通过操作命令对表user操作。
【实验环境】
本次环境是:centos6.5 + jdk1.7.0_79 + hadoop-2.4.1 + hbase
工具包在/simple/soft目录下
【实验步骤】
一、操作hbase表score
1.1 通过命令start-all.sh启动hadoop,在linux系统中终端执行命令:start-hbase.sh回车启动hbase服务。然后执行连接hbase shell命令:hbase shell进入命令环境,然后执行命令:create ‘user’,’info’,’data’创建一个表user并指定该表的一个列族info和data。如图1所示
图1
1.2 创建user表后需要向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan,执行命令:put 'user', 'rk0001', 'info:name', 'zhangsan'。向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female,执行命令:put 'user', 'rk0001', 'info:gender', 'female'。向user表中插入信息,row key为rk0001,列族info中添加age列标示符,值为20。执行命令:put 'user', 'rk0001', 'info:age', 20。如图2所示
图2
1.3 创建hbase表user之后, 向user表中插入信息,row key为rk0001,列族data中添加pic列标示符,值为picture,执行命令:put 'user', 'rk0001', 'data:pic', 'picture'。如图3所示
图3
1.4 查看user表中相关数据。获取user表中row key为rk0001的所有信息,执行命令:get 'user', 'rk0001'。获取user表中row key为rk0001,info列族的所有信息,执行命令:get 'user', 'rk0001', 'info'。获取user表中row key为rk0001,info列族的name、age列标示符的信息,执行命令:get 'user', 'rk0001', 'info:name', 'info:age'。如图4所示
图4
1.5 获取user表中row key为rk0001,info、data列族的信息,可以执行如下各命令实现
get 'user', 'rk0001', 'info', 'data'
get 'user', 'rk0001', {COLUMN => ['info', 'data']}
get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']}。如图5所示
图5
1.6查看某一行指定列族的列单元中的某个元素。
获取user表中row key为rk0001,列族为info,5个最新的版本信息
get 'user', 'rk0001', {COLUMN => 'info', VERSIONS => 2}
get 'user', 'rk0001', {COLUMN => 'info:name', VERSIONS => 5}。如图6所示
图6