liuxinrong

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}

分类:

技术点:

相关文章: