您的位置:首页 > 运维架构 > Shell

hbase的shell操作

2018-03-29 18:43 246 查看

1.进入 hbase

    hbase shell 

在你安装的随意台服务器节点上,执行命令:hbase shell,会进入到你的 hbase shell 客户端[root@hadoop02 ~]# hbase shell

2.帮助命令相关

    help 获取所有命令提示
    help "dml" 获取一组命令的提示
    help "put" 获取一个单独命令的提示帮助

3.显示 hbase 中的表

    list
    查看当前stu表的列簇的所有详细信息

    desc 'stu'

4.退出 hbase shell 客户端

    exit 

5.创建表---create

创建 user 表,包含 info、data 两个列簇
    create 'user', 'info1', 'data1'
    create 'user', {NAME => 'info', VERSIONS => '3'}

6.向表中插入信息---put

向 user 表中插入信息,row key 为 rk0001,列簇 info 中添加 name 列标示符,值为 zhangsan
    put 'user', 'rk0001', 'info:name', 'zhangsan'

7.获取信息---get

获取 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'

获取 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']}

获取 user 表中 row key 为 rk0001,列簇为 info,版本号最新 5 个的信息
    get 'user', 'rk0001', {COLUMN => 'info', VERSIONS => 2}
    get 'user', 'rk0001', {COLUMN => 'info:name', VERSIONS => 5}
    get 'user', 'rk0001', {COLUMN => 'info:name', VERSIONS => 5, TIMERANGE =>[1392368783980, 1392380169184]}

获取 user 表中 row key 为 rk0001,cell 的值为 zhangsan 的信息
    get 'people', 'rk0001', {FILTER => "ValueFilter(=, 'binary:图片')"}

获取 user 表中 row key 为 rk0001,列标示符中含有 a 的信息
    get 'people', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"}

8.获取信息---scan

查询 user 表中的所有信息
    scan 'user'
查询 user 表中列簇为 info 的信息
    scan 'user', {COLUMNS => 'info'}
    scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 5}
    scan 'persion', {COLUMNS => 'info', RAW => true, VERSIONS => 3}
 Scan 时可以设置是否开启 Raw 模式,开启 Raw 模式会返回包括已添加删除标记但是未实际删除的数据。

查询 user 表中列簇为 info 和 data 的信息
    scan 'user', {COLUMNS => ['info', 'data']}
    scan 'user', {COLUMNS => ['info:name', 'data:pic']}
查询 user 表中列簇为 info、列标示符为 name 的信息
    scan 'user', {COLUMNS => 'info:name'}
查询 user 表中列簇为 info、列标示符为 name 的信息,并且版本最新的 5 个
    scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}
查询 user 表中列簇为 info 和 data 且列标示符中含有 a 字符的信息
    scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}
查询 user 表中列簇为 info,rk 范围是[rk0001, rk0003)的数据
    scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW
9ced
=> 'rk0003'}
查询 user 表中 row key 以 rk 字符开头的
    scan 'user',{FILTER=>"PrefixFilter('rk')"}
查询 user 表中指定范围的数据
    scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}

9.删除数据---delete

删除 user 表 row key 为 rk0001,列标示符为 info:name 的数据

    delete 'people', 'rk0001', 'info:name'
删除 user 表 row key 为 rk0001,列标示符为 info:name,timestamp 为 1392383705316 的数据
    delete 'user', 'rk0001', 'info:name', 1392383705316

10.清空表的数据---truncate

清空 user 表中的数据

    truncate 'people'

11.修改表结构相关

首先停用 user 表(新版本不用)---disable
    disable 'user'
添加两个列簇 f1 和 f2----alter
    alter 'people', NAME => 'f1'
    alter 'user', NAME => 'f2'
启用表---enable
    enable 'user'
删除一个列簇:
    disable 'user'(新版本不用)
    alter 'user', NAME => 'f1', METHOD => 'delete' 或 alter 'user', 'delete' => 'f1'

添加列簇 f1 同时删除列簇 f2
    alter 'user', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}
将 user 表的 f1 列簇版本号改为 5
    alter 'people', NAME => 'info', VERSIONS => 5

启用表
    enable 'user'
删除记录
    delete 'person', 'rk0001', 'info:name'
删除字段
    delete 'person', 'rk0001', 'info:name'
删除表
    disable 'user'
    drop 'user'



12.过滤器

get 'person', 'rk0001', {FILTER => "ValueFilter(=, 'binary:中国')"}
get 'person', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"}

scan 'person', {COLUMNS => 'info:name'}

scan 'person', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}

scan 'person', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}

scan 'person', {COLUMNS => 'info', STARTROW => '20140201', ENDROW => '20140301'}

scan 'person', {COLUMNS => 'info:name', TIMERANGE => [1395978233636,1395987769587]}

alter 'person', NAME => 'ffff'

alter 'person', NAME => 'info', VERSIONS => 10

get 'user', 'rk0002', {COLUMN => ['info:name', 'data:pic']}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: