Hbase-基本操作(一)
一、常用操作
1) 进入HBase客户端命令行
bin/hbase shell
退出Hbase客户端:quit / exit / ctrl+c
2) 查看帮助命令
hbase(main)> help
3) 查看当前数据库中有哪些表
hbase(main)> list
4) 查看当前数据库中有哪些命名空间
hbase(main)> list_namespace
5)写错了的话,需要ctrl+退格键一起
二、表的操作
1)创建表
hbase(main)> create \'iparkmerchant_order\',\'smzf\'
hbase(main)> create \'staff\',\'info\'
hbase(main):007:0> create \'student\',\'cf1\'
2) 插入数据到表-一次只能添加一条数据
hbase(main) > put \'student2\',\'1001\',cf1:name\',\'Thomas\'
hbase(main) > put \'student2\',\'1001\',\'cf1:sex\',\'male\'
hbase(main) > put \'student2\',\'1001\',\'cf1:age\',\'18\'
hbase(main) > put \'student2\',\'1002\',\'cf1:name\',\'Janna\'
hbase(main) > put \'student2\',\'1002\',\'cf1:sex\',\'female\'
hbase(main) > put \'student2\',\'1002\',\'cf1:age\',\'20\'
hbase(main):009:0> put \'student\',\'1001\',\'cf1:name\',\'plus\'
put相同的数据的话就会发生覆盖,默认展示的是最新的数据(时间戳最大的),历史版本可以通过修改版本号进行查看
数据插入后的数据模型
|
Rowkey |
timestamp |
cf1 |
|||
|
name |
sex |
age |
|
||
|
1001 |
|
Thomas |
male |
18 |
|
|
1002 |
|
Janna |
female |
20 |
|
3) 扫描查看表数据
hbase(main) > scan \'student\'
hbase(main) > scan \'student\',{STARTROW => \'1001\', STOPROW => \'1001\'}
hbase(main) > scan \'student\',{STARTROW => \'1001\'}
注:这个是从哪一个rowkey开始扫描
hbase(main):012:0> scan \'student\'
4) 查看表结构
hbase(main):012:0> desc \'student\'
5) 更新指定字段的数据
hbase(main) > put \'student\',\'1001\',\'info:name\',\'Nick\'
hbase(main) > put \'student\',\'1001\',\'info:age\',\'100\'
hbase(main) > put \'student\',\'1001\',\'info:isNull\',\'\'(仅测试空值问题)
6) 查看“指定行”或“指定列族:列”的数据
hbase(main) > get \'student\',\'1001\'
hbase(main) > get \'student\',\'1001\',\'info:name\'
7) 删除数据
(1)删除某rowkey的全部数据:
hbase(main) > deleteall \'student\',\'1001\'
这里就是删除所有以‘1001’为RowKey的数据行。
(2)只删除指定列的数据行
hbase(main):030:0> delete \'student\',\'1001\',\'cf1:isNull\'
这里就是只删除指定的数据行-列簇中列名为isNull而且以’1001’为RowKey的数据行。
8) 清空表数据
hbase(main) > truncate \'student\'
尖叫提示:清空表的操作顺序为先disable,然后再truncate。
9) 删除表
首先需要先让该表为disable状态:
hbase(main) > disable \'student\'
检查这个表是否被禁用
hbase(main) > is_enabled \'hbase_book\'
hbase(main) > is_disabled \'hbase_book\'
恢复被禁用的表
enable \'student\'
禁用/停止表之后然后才能drop这个表:
hbase(main) > drop \'student\'
尖叫提示:如果直接drop表,会报错:Drop the named table. Table must first be disabled
ERROR: Table student is enabled. Disable it first.
10) 统计表数据行数
hbase(main) > count \'student\'
11) 变更表信息
将info列族中的数据存放3个版本:
hbase(main) > alter \'student\',{NAME=>\'info\',VERSIONS=>3}
查看student的最新的版本的数据
hbase(main) > get \'student\',\'1001\'
查看HBase中的多版本
hbase(main) > get \'student\',\'1001\',{COLUMN=>\'info:name\',VERSIONS=>10}