HBASE基础命令

三.基本命令
1.命名空间--区分大小写
(1)创建命名空间
  create_namespace 'hadoop'
创建一个命名空间,并且指定属性
create_namespace 'ns1', {‘key1'=>'value2’}
注意:1)hbase中没有进入到某一个namespace概念,操作表格,一律带上namespace名称,否则就默认从default这个namespace中找;
      2)赋值符号是:=>
(2)列举命名空间
list_namespace
(3)查看命名空间(describe_namespace)
describe_namespace 'hadoop'
(4)修改命名空间(alter_namespace)
①添加和修改
To add/modify a property:
  hbase> alter_namespace 'ns1', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
alter_namespace 'ns1', {METHOD => 'set', 'key1' => 'VALUE2'}
②删除
To delete a property:
  hbase> alter_namespace 'ns1', {METHOD => 'unset', NAME=>'PROPERTY_NAME'}
alter_namespace 'ns1', {METHOD => 'unset', NAME=>'key2'}

(5)删除命名空间(drop_namespace )
Drop the named namespace. The namespace must be empty.
drop_namespace 'ns1'
(6)列出命名空间下的表 (list_namespace_tables)
list_namespace_tables ‘ns1’

四.表的操作
 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.create 
 a.创建到指定命名空间下,指定表名,和至少一个列族,如果不知道命名空间,就是在default创建表
create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
create 't1', {NAME => 'f1', VERSIONS => 5}, METADATA => { 'mykey' => 'myvalue' }

create 'hadoop:t2',{NAME=>'f1',VERSIONS=>5}

hadoop :命名空间
t2:表名
NAME:列族名称
VERSIONS:版本号

2.describe
desc 'hadoop:t2'
主要看列族信息
{NAME => 'f1', 
BLOOMFILTER => 'ROW',  布隆过滤器 ROW, ROWCOL,NONE
VERSIONS => '5', 指定版本
IN_MEMORY => 'false',该列族下数据缓冲是否放到内存
DATA_BLOCK_ENCODING => 'NONE',指定压缩格式
BLOCKCACHE => 'true',缓冲是否打开
 BLOCKSIZE => '65536', 缓冲大小
TTL => 'FOREVER' 超时设置,如果在规定时间内,没有对表进行操作,那么该列族下的数据会自动情空

3.list
查看所有命名空间下的表

4.alter 修改表属性,列族属性的修改,如果对应的列族没有,就添加
 hbase-site.xml

  
                  hbase.online.schema.update.enable
                  false
    
当创建表格的时候,默认是开启状态,可以直接修改表的属性;如设置为false,修改一个表的属性,会报错,需要先关掉,disable ‘hadoop:t2’,再修改
修改(如果没有就增加):
alter 't1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5}
alter ‘hadoop:t2’ ,NAME=>’f1’,VERSIONS=>3
删除(至少要保证有一个列族存在):
  hbase> alter 'ns1:t1', NAME => 'f1', METHOD => 'delete'
  hbase> alter 'ns1:t1', 'delete' => 'f1'

alter_async:异步修改表的属性
异步修改了列族的属性,不需要等待所有region都完成

5.表状态指令
disable:关闭表,可以修改表的属性,无法往表插入数据,也无法查询
enable:开启表,不能修改表属性,可以执行增删改查
is_enable:判断表是否处于开启状态
is_disabled:判断是否是关闭状态

6.drop 删除表(必须关闭才可以删除)
7.get_table获取表的对象,方便对该表操作
  hadoop_t4 = get_table 'hadoop:t4'
    原来的操作
   disable 'hadoop:t4’ 
   drop 'hadoop:t4’

   使用get_table操作
   hadoop_t4.disable
   hadoop_t4.drop
五.dml操作
Commands: append, count, delete, deleteall, get, get_counter, get_splits, incr, put, scan, truncate, truncate_preserve
1.put  插入一个单元格
put 'ns1:t1', 'r1', 'cf:c1', 'value'
ns1:命名空间 
t1:表格
r1:行
cf:列族
c1:列
时间戳有hbase自动添加,用于管理单元格多版本
hbase插入数据一次只能一个单元格

2.scan 全表查询,可以获取多行结果
  全表扫描
  scan 'hbase:human'

  全表扫描 查找指定的列
  scan 'hadoop:human', {COLUMNS => 'info'}

  全表扫描,指定行数 限制5行
  scan 'hadoop:human', { LIMIT => 5, STARTROW => '10'}

  全表扫描,从STARTROW开始(包含),到STOPROW结束(不包含)
  scan 'hadoop:human', { STARTROW => '10', STOPROW=>'8'}

  全表扫描,以倒序显示
  scan 'hadoop:human', {REVERSED => true}

3.get 
(1)查询一行get 'hadoop:t1',1
(2)查询一行下的列:get 'hadoop:t1',1, {COLUMN =>'f1:id'}
(3)查询一个列族:get 'hadoop:t1',1, {COLUMN =>'f1'}
(4)查询多列:get 'hadoop:t1',1, {COLUMN =>['f1:id','f1:name']}
(5)查看某个列所有版本的数据:get 'hadoop:t1',1, {COLUMN =>'f1:id',VERSIONS =>2 }
如果VERSIONS 超过设置,把最老的数据删除
(6)根据时间戳查:get 'hadoop:t1',1, {COLUMN =>'f1:id',TIMESTAMP =>1547019748265 }
(7)根据时间戳范围查:get 'hadoop:t1',1, {COLUMN => 'f1:id',TIMERANGE=>[1447019748269,1947019778265],VERSIONS=>3 }
注意:
  	a.时间戳范围包含左边,但是不包含右边数据
  	b.VERSIONS 将影响查询最终的输出结果.
  4.delete 删除一个单元格
   没有指定时间戳,就是删除最新的单元格
   delete 'hadoop:human', '1', 'info:name'

   指定时间戳版本删除
   delete 'hadoop:human', '1', 'info:name', 1547023471388

  5.deleteall
  删除整行数据
  deleteall 'hadoop:human', '1'

  删除该单元格所有版本
  deleteall 'hadoop:human', 1, 'info:name'

 

你可能感兴趣的:(hbase,大数据)