上一节我们安装了hbase,本文将展示如何通过命令行对Hbase进行操作。
1 系统、软件以及前提约束
在CentOS7当中已经安装Hbase并启动https://www.jianshu.com/p/90d1713d55ce
xshell客户端
注意:作者的CentOS7的ip是192.168.100.200,请读者根据实际情况设置。
2 操作
1.使用xshell连接CentOS7
2.进入hbase命令行
# 进入家目录
cd
# 进入hbase的bin目录
cd hbase-1.2.6/bin
# 进入hbase命令行
./hbase shell
3.创建namespace
create_namespace \'nn\'
4.创建一张表
# t1指表名字,f1指列簇名,注意都要带单引号,不用分号结束
create \'t1\',\'f1\'
# 创建一张指定namespace的表
create \'nn:t2\',\'f1\'
# 查看当前都有哪些表
list
# 查看某个namespace下的表
list_namespace_tables \'nn\'
# 描述某个表
desc \'t1\'
# 描述某个namespace下的某个表
desc \'nn:t1\'
5.增删改查表中数据
# 增加1条记录, t1是表名,key1是这条记录名,f1:name是列簇下的name列,ali是这一列的值
put \'t1\',\'key1\',\'f1:name\',\'ali\'
# 继续增加1条记录, t1是表名,key1是这条记录名,f1:age是列簇下的name列,10是这一列的值
put \'t1\',\'key1\',\'f1:age\',\'10\'
# 继续增加1条记录, t1是表名,key2是这条记录名,f1:name是列簇下的name列,xiaoli是这一列的值
put \'t1\',\'key2\',\'f1:name\',\'xiaoli\'
# 继续增加1条记录, t1是表名,key2是这条记录名,f1:age是列簇下的name列,2是这一列的值
put \'t1\',\'key2\',\'f1:age\',\'2\'
# 增加一个sal列及其值
put \'t1\',\'key1\',\'f1:sal\',\'2\'
# 获取key1这条记录
get \'t1\',\'key1\'
# 获取key1这条记录的f1列簇的值
get \'t1\',\'key1\',\'f1\'
# 获取key1这条记录的f1列簇中name的值
get \'t1\',\'key1\',\'f1:name\'
# 获取整个表的值
scan \'t1\'
# 获取某列簇的值
scan \'t1\',{COLUMNS=>\'f1\'}
# 获取key1向后的两行值
scan \'t1\',{STARTROW=>\'key1\',LIMIT=>2,COLUMNS=>\'f1:age\'}
# 查询值为ali的人
scan \'t1\',{FILTER=>"ValueFilter(=,\'binary:ali\')"}
# 查询值为2的人
scan \'t1\',{FILTER=>"ValueFilter(=,\'binary:2\')"}
# 查询年龄信息
scan \'t1\',{FILTER=>"ColumnPrefixFilter(\'age\')"}
# 查询年龄中值为2的信息
# 注意:除了列(COLUMNS)修饰词外,
#HBase还支持Limit(限制查询结果行数),
#STARTROW (ROWKEY起始行)、
#STOPROW(结束行)、
#TIMERANGE(限定时间戳范围)、
#VERSIONS(版本数)、
#FILTER(按条件过滤行)等。
scan \'t1\',{FILTER=>"ColumnPrefixFilter(\'age\') AND ValueFilter(=,\'binary:2\')"}
# 更新key1这条记录中的f1列簇的name列的值为zhangli
put \'t1\',\'key1\',\'f1:name\',\'zhangli\'
# 验证
get \'t1\',\'key1\',\'f1:name\'
# 删除key1这条记录中的f1列簇的name列的值
delete \'t1\',\'key1\',\'f1:name\'
# 验证
get \'t1\',\'key1\',\'f1:name\'
# 删除key1这一行记录
deleteall \'t1\',\'key1\'
# 验证
get \'t1\',\'key1\'
6 修改t1表信息并再次查询
# 查看当前有哪些表
list
# 查看表的版本信息
describe \'t1\'
# 将t1表的版本信息由1改为3
alter \'t1\',{NAME=>\'f1\',VERSIONS=>3}
# 修改key1的age值
put \'t1\',\'key1\',\'f1:age\',\'22\'
# 再次修改key1的age值
put \'t1\',\'key1\',\'f1:age\',\'23\'
# 查看曾经的值
scan \'t1\',{COLUMN=>\'f1:age\',VERSIONS=>3}
# 给现有表增加一个列簇
alter \'t1\',{NAME=>\'f2\',VERSIONS=>3}
# 查看添加结果
describe \'t1\'
# 删除现有表中的一个列簇
alter \'t1\',\'delete\'=>\'f2\'
# 查看添加结果
describe \'t1\'
7 删除t1表
# 先让表失效
disable \'t1\'
# 删除
drop \'t1\'
# 验证
list
以上就是使用命令行对hbase进行的基本操作。
|