hbase之shell操作

 hbase之shell操作

 hbase之shell操作(帮助命令) 

进入hbase的客户端:安装过hbase的节点都可以

进入客户端命令:hbase shell

hbase的客户端操作界面:hbase(main):001:0>

查看帮助命令:help

查询相关命令的帮助:help command

ctrl+backspace是删除 

----------------------------------------------------------------------------

hbase之shell操作(namespace操作) 

一、简介

hbase中没有数据库概念,hbase中有namespace相当于hive中的数据库。

Group name: namespace

Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables

二、创建

      help "create_namespace"

create_namespace "name"

三、查看namespace列表

      list_namespace

四、查看详细描述信息

      describe_namespace "name"

五、显示当前namespace下的所有表

      list_namespace_tables “name”

六、删除 namespace

      drop_namespace "name"

七、注意

      默认hbase中有2个namespace

      default:默认,默认建表不指定namespace 就在这个下面的

      hbase:hbase的系统namespace 存储hbase本身相关信息的

-----------------------------------------------------------------------

 hbase之shell操作(DDL)

一、简介

Group name: ddl

Commands: alter, alter_async, alter_status, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, locate_region, show_filters

二、创建表

1、语法1

      craete "namespace:表名","family column","family column"

      create "bdtest:test1","info1","info2"

2、语法2

      {表的一些属性 必须包含列族}

   create "namespace:表名",{NAME => “”,VERSIONS => 3,TTL =>},{NAME => ""}

      常用的属性:VERSIONS => 1  指定数据版本, TTL => 2592000  指定数据存储周期

create "bdtest:test2",{NAME => "info1"},{NAME => "info2",VERSIONS => 3}

三、删除表

      先禁用表,在删除表

drop "namespace:表名"

disable "bdtest:test1"

drop "bdtest:test1"

      drop_all

hbase> drop_all 'namespace:.*|t.*'

删除指定的所有表

四、修改表

1、修改属性信息

      alter 'namespace:表名', '列族', {NAME => '列族', IN_MEMORY => true}, {NAME => '列族', VERSIONS => 5}

      alter "bdtest:test1",{NAME => "info1",VERSIONS => 3}

      其中不在花括号中的列族,可以省略,如果要添加一个默认状态下的列族可以使用。

2、添加列族

      alter "bdtest:test1",{NAME => "info3",VERSIONS => 3}

      修改表的时候,列族不存在,事实上就是添加

      alter "bdtest:test1","info4",{NAME => "info5",VERSIONS => 3}

3、删除列族

hbase> alter 'namespace:表名', NAME => '列族', METHOD => 'delete'

      hbase> alter 'namespace:表名', 'delete' => '列族'

      METHOD 用于指定对当前列族的操作

      alter "bdtest:test1",NAME => "info5",METHOD => 'delete'

      alter "bdtest:test1",'delete' => "info4"

      注意: 表中至少有一个列族,如果表中只剩一个列族,不允许删除

五、查看表列表

list

hbase> list  查看所有的表列表

hbase> list 'abc.*'  查看所有的指定字符开头的表default下的

hbase> list 'ns:abc.*'  查看指定的namespace下的所有的指定字符开头的表列表

      list 'bdtest:t.*'

hbase> list 'ns:.*' 查看指定namespace下的所有表列表

      list "bdtest:.*"

六、查看表的详细信息

      help 'describe'

hbase> describe 't1'  查看default下的表的描述信息

hbase> describe 'ns1:t1' 查看指定namespace下的所有表描述信息的

简写:

hbase> desc 't1'

hbase> desc 'ns1:t1'

      建表过程中,没有指定版本信息,默认1个。默认存储周期,永久存储 ttl=> forever

七、查看表状态

1、两种状态

      启用:enable 可以执行操作的

      禁用:disable 不可以执行操作

2、查看表是否禁用

      is_disabled "namespace:表名"

      is_disabled "bdtest:test1"

      禁用true 启用 false

3、查看表是否启用

      is_enabled "namespace:表名"

      is_enabled "bdtest:test1"

      启用 true 禁用 false

4、注意

      默认建表的时候,是启用状态

八、禁用表和启用表

      disable "namespace:表名"

enable“namespace:表名”

 

disable "test1"

is_disabled "test1"

 

enable "test1"

is_disabled "test1"

 

disable_all "namespace:.*|t.*"  禁用指定的所有表

enable_all  "namespace:.*|t.*"  启用指定的所有表

disable_all "bdtest:.*"

is_disabled "bdtest:test1"

 

enable_all "bdtest:.*"

is_disabled "bdtest:test1"

------------------------------------------------------------------

 hbase之shell操作(DML) 

一、简介

Group name: dml

Commands: append, count, delete, deleteall, get, get_counter, get_splits, incr, put, scan, truncate, truncate_preserve

二、添加数据

行键   列族:列  值

hbase> put 'namespace:表名', '行键', '列族:列', '列的值',[ts1(时间戳 不给默认系统时间戳)]

put "bdtest:test2","rk001","info1:name","zs"

put "bdtest:test2","rk001","info1:age","18"

put "bdtest:test2","rk001","info1:addr","hebei"

三、删除数据

hbase> delete 'namespace:表名', '行键', '列族:列', 时间戳

base_info:age timestamp=1558847233830, value=25

delete "user_info","zhangsan_20150701_0004","base_info:age",

四、清空表数据

truncate "namespace:表名"

is_disabled "user_info"

1、- Disabling table...  禁用表

2、- Truncating table...  清空表

3、启用表

五、扫描查询表数据(scan)

1、全表扫描

      表下的所有列族的所有列全部显示

scan "namespace:表名"

      scan "user_info"

2、指定列显示

scan "namespace:表名",{COLUMNS => '列族:列名'}

      scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"]}

      scan "user_info",{COLUMNS => "base_info:age"}

      scan "user_info",{COLUMNS => ["base_info:name","base_info:age"]}

3、指定显示行数LIMIT

scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"],LIMIT => 需要显示的行数}

      scan "user_info",{COLUMNS => "base_info:age",LIMIT => 5}

4、指定rowkey范围显示

STARTROW指定起始的行键,ENDROW指定结束的行键

      scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"],LIMIT=> ,STARTROW => "",ENDROW => ""}

scan "user_info",{STARTROW => "baiyc_20150716_0008",ENDROW => "zhangsan_20150701_0004"}

      这种显示方式 包含左边界  不包含右边界

      只指定STARTROW 不指定 ENDROW 显示到结尾

      scan "user_info",{COLUMNS => "base_info:age",STARTROW => "baiyc_20150716_0008",ENDROW => "zhangsan_20150701_0004"}

5、指定时间戳范围

      scan "namespace:表名",{COLUMNS=>"",TIMERANGE=>,LIMIT=>}

      scan "user_info",{COLUMNS => "base_info:name",TIMERANGE => [1558844852080,1558844855890]}

      时间戳范围,含头,不含尾

      查询数据 TIMERANGE => [起始时间戳,终止的时间戳]

6、总结

      scan进行表数据查询的时候2种方式

      (1)全表扫描

      (2)指定rowkey范围进行查询

六、单条查询表数据(get)

1、查询指定行键

      查询指定行键的 只能查询一条数据的

      hbase> get 'namespace:表名',"行键"

      get "user_info","zhangsan_20150701_0004"

2、查询指定一行数据的列

COLUMN => []

      get "namespace:表名","行键",{COLUMN => ["列族:列",“列族:列”]}

get "user_info","zhangsan_20150701_0004",{COLUMN => ["base_info:name","base_info:age"]}

3、指定查询一行数据的时间戳

      查看某一列指定版本的数据

      get "user_info","zhangsan_20150701_0004",{TIMESTAMP => 1558844848954}

      get "user_info","zhangsan_20150701_0004",{COLUMN => "base_info:age",TIMESTAMP => 1558847233830}

      put "user_info","zhangsan_20150701_0004","base_info:age","25"

4、指定查询的数据时间戳范围

      get "user_info","zhangsan_20150701_0004",{TIMERANGE => [1558844823464,1558847245992]}

      时间戳,含头不含尾的

 

 

posted @ 2020-07-21 13:38  整合侠  阅读(327)  评论(0编辑  收藏  举报