Hbase shell命令
进入Hbase Cli操作:
# 在配置了环境变量的情况下,否则需要进入hbase安装目录`/bin/hbase`
hbase shell
Hbase Cli操作:
删除:`Ctrl + 删除键`
[] :里面的参数为可选可不选的
() : 里面的参数为单选
001、系统命令
status
查看集群状态
version
查看当前hbase版本
table_help
查看表命令
whoami
查看登陆用户
002、namespace相关
创建
create_namespace 'ns1' [ , {'PROPERTY_NAME'=>'PROPERTY_VALUE'} ]
参数解释:
ns1:namespace的名称,必须使用''括起来
PROPERTY_NAME:
删除
drop_namespace 'ns1'
# 删除一个namespace,但是必须报证namespace下面没有存在表。
修改
# 增加或者修改某个属性
alter_namespace 'ns1', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
# 删除某个属性
alter_namespace 'ns1', {METHOD => 'unset', NAME=>'PROPERTY_NAME'}
查看
# 展示这个命名空间的属性以及状态
describe_namespace 'ns1'
# 查看所有的命名空间
list_namespace
# 查看某个命名空间下面所有表
list_namespace_tables
003、table相关
状态相关
# 查看表是否存在
exists 'ns1:t1
# 禁用表
disable 'ns1:t1
# 启用表
enable 'ns1:t1
# 验证表是否禁用或者启用
is_disabled|enabled
# 在删除表或者修改表信息的时候,必须先要讲表设置为禁用状态,修改完毕之后启用表.否则会导致表的异常.
创建
create 'ns1:t1'(, 'f1' | {NAME => 'f1',.....})[ , SPLITS => ['10', '20'], ] [METADATA => { 'mykey' => 'myvalue' }] [,{NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}]
# 创建一个表的时候,如果什么都配置,那么所有的参数全都是默认值.如果要修改默认参数就可以加上后缀配置.
参数解释:
ns1:t1: 表名以及所属的namespace
'f1' | {NAME => 'f1',.....}: 如果只指定列族的名字,那么所有的配置都走的默认的,如果先要修改参数,就再后面最佳即可.配置列表如下:
//列族
NAME => 'info',
//数据块编码方式设置
//参见:http://hbase.apache.org/book.html#data.block.encoding.enable
DATA_BLOCK_ENCODING => 'NONE',
//参见:http://hbase.apache.org/book.html#bloom.filters.when
BLOOMFILT => 'ROW',
//配置HBase集群replication时需要将该参数设置为1.
//参见:http://blog.cloudera.com/blog/2012/08/hbase-replication-operational-overview/?utm_source=tuicool
REPLICATION_SCOPE => '0',
//设置保存的版本数
VERSIONS => '1',
//设置压缩算法,
//可以设置的参数:GZIP/LZO/snappy/
COMPRESSION => 'NONE',
//最小存储版本数
//是说在compact操作执行之后,至少要保留的版本
MIN_VERSIONS => '0',
// 设置当前保存的时间,S为基本单位
TTL => 'FOREVER',
//参见:http://hbase.apache.org/book.html#cf.keep.deleted
KEEP_DELETED_CELLS => 'false',
//设置HFile数据块大小(默认64kb)
BLOCKSIZE => '65536',
//设置激进缓存,优先考虑将该列族放入块缓存中,
//针对随机读操作相对较多的列族可以设置该属性为true
IN_MEMORY => 'false',
//数据块缓存属性
BLOCKCACHE => 'true'
SPLITS: 分区的规则
METADATA:一些自定义参数
最后一个:创建预分区,需要设置数量以及分区规则.
# 在创建表格的时候,可以使用参数来代表此创建的表格,后续操作可以直接使用参数代表表格:t1 = create 't1', 'f1'
删除
drop 'ns1:t1'
drop_all 'ns:.*'
# 第一个语句是删除具体表,第二个表是根据正则批量删除.
修改
# 添加或者修改列族
alter 't1', 'f1', (配置参数 )[, {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5}]
# 删除一个列族
alter 'ns1:t1', 'delete' => 'f1'
# 修改表范围运算符:MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DURABILITY
alter 't1', MAX_FILESIZE => '134217728'
# 删除表范围运算符
alter 't1', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
查看
# 查看所有的表
list
# 查看表的描述
describe|desc 'ns1:t1'
004、数据相关
增加
# 001 添加指定数据到指定行
put 't1', 'r1', 'c1', 'value'[, ts1] [, {ATTRIBUTES=>{'mykey'=>'myvalue'}}]
参数解释:
ns1:ts1:指定插入的数据表
ri:指定要插入的行
c1:指定要插入的列
value:要插入的值
ts1:如果存在多个版本,指定要插入的版本
ATTRIBUTES=>{'mykey'=>'myvalue':
# 002 计数器,默认是走一步
incr 'ns1:t1', 'r1', 'c1',num
删除
# 001 删除指定数据
delete 't1', 'r1', 'c1'[, ts1] [, {VISIBILITY=>'PRIVATE|SECRET'}]
# 002 删除整行数据
deleteall 't1', 'r1'
# 003 禁用,删除和重新创建一个指定的表
truncate 'ns1:t1'
修改
等同`put`
查看
# 001 获取指定行具体的值
get 'ns1:t1', 'r1',{COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4}
# 002 扫描器扫描
scan 'ns1:t1' [, {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}]
参数解释:
ns1:t1: 扫描指定表的全部数据
[]:根据筛选扫描满足条件的数据
# 003 统计
count 't1', INTERVAL => 10, CACHE => 1000
参数解释:
INTERVAL: 设置多少行显示一次及对应的rowkey,默认1000;
CACHE: 每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
# 004 获取计步器数据
get_counter 'ns1:t1', 'r1', 'c1'
005、权限相关
配置文件(hbase-site.xml)需要开启:
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
授权
grant <user>, <permissions> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]
参数解释:
user:需要授权的角色
permissions:权限,READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
table:表
column:列
解除授权
revoke <user> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]
参数解释路上.