Hbase 常用 Shell 命令

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>]]]]

参数解释路上.
上一篇:iptables之filter表的学习和实验


下一篇:Launch X431 Pro Mini Diagnostic Tool with Bluetooth Update Online Powerful Than Diagun