当前位置:   article > 正文

HBase常用命令(超全超详细)_hbase命令

hbase命令

目录

连接HBase

连接HBase并查看版本

帮助命令

查看服务器状态

查看当前数据库中有哪些表

命名空间

列出所有命名空间

新建命名空间

删除命名空间

修改命名空间

创建表

列举表

表结构

查询表

添加数据

更新数据

检查插入情况.

表扫描

按照条件查询 

获取某一行

统计表数据行数

删除数据

禁用表

 禁用表

清空表

启用表

 启用表

变更表信息

添加列簇

删除列簇 

 修改版本信息

删除表

用户权限

退出


 

5eb19a777a14463f91ee303de6bb6a31.png

文档: https://hbase.apache.org/book.html#getting_started

本节我们将向您展示如何使用 hbase shell CLI 在 HBase 中创建表、在表中插入行、对表执行放置和扫描操作、启用或禁用表以及启动和停止 HBase。

主要讲述了HBase的CRUD等基本DDL和DML操作。

注意:HBase Shell 中的删除键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。

连接HBase

连接HBase并查看版本

  1. $ ./bin/hbase shell
  2. HBase Shell; enter 'help<RETURN>' for list of supported commands.
  3. Type "exit<RETURN>" to leave the HBase Shell
  4. Version: 0.90.0, r1001068, Fri Sep 24 13:55:42 PDT 2010
  5. hbase(main):001:0> version

帮助命令

所有的帮助

hbase(main):001:0> help

指定命令的帮助

hbase(main):001:0> help 'create'

输入 help 然后 <RETURN> 可以看到一列shell命令。这里的帮助很详细,要注意的是表名,行和列需要加引号。

查看服务器状态

  hbase(main):001:0> status

查看当前数据库中有哪些表

hbase(main):002:0> list

命名空间

列出所有命名空间

hbase(main):002:0> list_namespace

新建命名空间

hbase(main):002:0> create_namespace 'ns1'

删除命名空间

hbase(main):002:0> drop_namespace 'ns1'

该命名空间必须为空,否则系统不让删除。

修改命名空间

hbase> alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

创建表

创建一个名为 test 的表,这个表只有一个 列族 为 cf。可以列出所有的表来检查创建情况,然后插入些值。

  1. hbase(main):003:0> create 'test', 'cf'
  2. 0 row(s) in 1.2200 seconds
  3. hbase(main):003:0> list 'table'
  4. test
  5. 1 row(s) in 0.0550 seconds
  6. hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
  7. 0 row(s) in 0.0560 seconds
  8. hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
  9. 0 row(s) in 0.0370 seconds
  10. hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
  11. 0 row(s) in 0.0450 seconds

以上我们分别插入了3行。第一个行key为row1, 列为 cf:a, 值是 value1。HBase中的列是由 列族前缀和列的名字组成的,以冒号间隔。例如这一行的列名就是a.

列举表

列出指定命名空间下的所有表

hbase> list_namespace_tables 'ns1'

列出所有表

hbase> list

 

表结构

查看表里面有哪些字段。

  1. hbase(main):003:0> describe 'test'
  2. Table test is ENABLED
  3. test
  4. COLUMN FAMILIES DESCRIPTION
  5. {NAME => 'cf', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =>
  6. 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'f
  7. alse', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE
  8. => '65536'}
  9. 1 row(s)
  10. Took 0.9998 seconds

查询表

查询表是否存在

语法:exists ‘table_name’

hbase(main):005:0> exists 'test'

添加数据

  1. hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
  2. 0 row(s) in 0.0850 seconds
  3. hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
  4. 0 row(s) in 0.0110 seconds
  5. hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
  6. 0 row(s) in 0.0100 seconds

更新数据

  1. hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value4'
  2. 0 row(s) in 0.0100 seconds

表查询

语法:scan ‘table_name’,{COLUMNS => [ ‘column_family:column’,… ], LIMIT => num}

全表Scan操作如下:

  1. hbase(main):007:0> scan 'test'
  2. ROW COLUMN+CELL
  3. row1 column=cf:a, timestamp=1288380727188, value=value1
  4. row2 column=cf:b, timestamp=1288380738440, value=value2
  5. row3 column=cf:c, timestamp=1288380747365, value=value3
  6. 3 row(s) in 0.0590 seconds

 扫描表scan,cf:a的前2条数据

  hbase(main):004:0> scan 'test',{COLUMNS => 'cf:a',LIMIT => 2}

按照条件查询 

  1. 查询前几条数据
  2. scan 'test',{LIMIT=>5}
  3. #查询从指定行到结束行
  4. hbase(main):009:0> scan 'test',{STARTROW => '1001', STOPROW => '1001'}
  5. #查询从指定行开始五条
  6. hbase(main):010:0> scan 'test',{STARTROW => '1001',LIMIT=>5}

获取某一行

get一行,操作如下

  1. hbase(main):008:0> get 'test', 'row1'
  2. COLUMN CELL
  3. cf:a timestamp=1288380727188, value=value1
  4. 1 row(s) in 0.0400 seconds

查看“指定行”或“指定列族:列”的数据 

  1. hbase(main):008:0> get 'test', 'row1','cf:a'
  2. COLUMN      CELL
  3. cf:a        timestamp=1288380727188, value=value1
  4. 1 row(s) in 0.0400 seconds

通过versions来获取多个版本的数据

hbase(main):019:0> get 'test','1001',{COLUMN=>'cf:a',VERSIONS => 2}

统计表数据行数

hbase(main):021:0> count 'test'

删除数据

  •         删除某rowkey的全部数据:
hbase(main):016:0> deleteall 'test','1001'
  •         删除某rowkey的某一列数据: 
hbase(main):008:0> delete 'test', 'row1','cf:a'

禁用表

判断表是否禁用

语法:is_disabled ‘table_name’

示例:判断test表是否禁用

  hbase(main):026:0> is_disabled 'test'

 禁用表

  1. hbase(main):012:0> disable 'test'
  2. 0 row(s) in 1.0930 seconds

清空表

  1. hbase(main):018:0> truncate 'test'
  2. 提示:清空表的操作顺序为先disable,然后再truncate

启用表

判断表是否启用

语法:is_enabled ‘table_name’
示例:判断test表是否启用

  hbase(main):005:0> is_enabled 'test'

 启用表

  1. hbase(main):009:0> enable 'test'
  2. 0 row(s) in 0.1770 seconds

变更表信息

添加列簇

命令格式:alter ‘表名’,‘列簇名’

alter 'test','cf1'

删除列簇 

语法:alter ‘table_name’, {NAME => ‘column_family1’, METHOD => ‘delete’}
示例:将表test中的列簇cf删除

  hbase(main):016:0> alter 'test',{NAME => 'cf',METHOD => 'delete'}

 修改版本信息

将cf列族中的数据存放3个版本:

  1. hbase(main):022:0> alter 'test',{NAME=>'cf',VERSIONS=>3}
  2. hbase(main):022:0> get 'test','1001',{COLUMN=>'cf:a',VERSIONS=>3}

查看是否处理成功:

  hbase(main):017:0> describe 'test'

删除表

disable 再 drop 这张表,可以清除你刚刚的操作

  1. hbase(main):013:0> drop 'test'
  2. 0 row(s) in 0.0770 seconds

用户权限

  1. user_permission ['表名'..]
  2. grant '用户名' ,'RWXCA'
  3. R - represents read privilege.
  4. W - represents write privilege.
  5. X - represents execute privilege.
  6. C - represents create privilege.
  7. A - represents admin privilege.

退出Shell

hbase(main):014:0> exit

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/668800
推荐阅读
相关标签
  

闽ICP备14008679号