• HBase常用命令


    • 进入shell
    [hadoop@indb-3-136-hzifc bin]$ echo $HBASE_HOME
    /data/program/hbase
    [hadoop@indb-3-136-hzifc bin]$ /data/program/hbase/bin/hbase shell
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/data/program/hbase-1.2.0-cdh5.8.3/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/data/program/hadoop-2.6.0-cdh5.8.3/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    HBase Shell; enter 'help<RETURN>' for list of supported commands.
    Type "exit<RETURN>" to leave the HBase Shell
    Version 1.2.0-cdh5.8.3, rUnknown, Wed Oct 12 20:33:08 PDT 2016
    
    hbase(main):035:0> whoami
    hadoop (auth:SIMPLE)
        groups: hadoop
    • 表结构

    1. 创建表

    语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
    创建一个User表,并且有一个info列族

    hbase(main):002:0> create 'User','info'
    0 row(s) in 1.5890 seconds
    
    => Hbase::Table - User

    3. 查看所有表

    hbase(main):003:0> list
    TABLE
    SYSTEM.CATALOG
    SYSTEM.FUNCTION
    SYSTEM.SEQUENCE
    SYSTEM.STATS
    TEST.USER
    User
    6 row(s) in 0.0340 seconds
    
    => ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "TEST.USER", "User"]

    4. 查看表详情

    hbase(main):004:0> describe 'User'
    Table User is ENABLED
    User
    COLUMN FAMILIES DESCRIPTION
    {NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
    VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
    1 row(s) in 0.1410 seconds
    
    hbase(main):025:0> desc 'User'
    Table User is ENABLED
    User
    COLUMN FAMILIES DESCRIPTION
    {NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
    VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
    1 row(s) in 0.0380 seconds

    5. 表修改

    删除指定的列族

    hbase(main):002:0> alter 'User', 'delete' => 'info'
    Updating all regions with the new schema...
    1/1 regions updated.
    Done.
    0 row(s) in 2.5340 seconds
    • 表数据

    1. 插入数据

    语法:put <table>,<rowkey>,<family:column>,<value>

    hbase(main):005:0> put 'User', 'row1', 'info:name', 'xiaoming'
    0 row(s) in 0.1200 seconds
    
    hbase(main):006:0> put 'User', 'row2', 'info:age', '18'
    0 row(s) in 0.0170 seconds
    
    hbase(main):007:0> put 'User', 'row3', 'info:sex', 'man'
    0 row(s) in 0.0030 seconds

    2. 根据rowKey查询某个记录

    语法:get <table>,<rowkey>,[<family:column>,....]

    hbase(main):008:0> get 'User', 'row2'
    COLUMN                                  CELL
     info:age                               timestamp=1502368069926, value=18
    1 row(s) in 0.0280 seconds
    
    hbase(main):028:0> get 'User', 'row3', 'info:sex'
    COLUMN                                  CELL
     info:sex                               timestamp=1502368093636, value=man
    
    hbase(main):036:0> get 'User', 'row1', {COLUMN => 'info:name'}
    COLUMN                                  CELL
     info:name                              timestamp=1502368030841, value=xiaoming
    1 row(s) in 0.0120 seconds

    3. 查询所有记录

    语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
    扫描所有记录

    hbase(main):009:0> scan 'User'
    ROW                                     COLUMN+CELL
     row1                                   column=info:name, timestamp=1502368030841, value=xiaoming
     row2                                   column=info:age, timestamp=1502368069926, value=18
     row3                                   column=info:sex, timestamp=1502368093636, value=man
    3 row(s) in 0.0380 seconds

    扫描前2条

    hbase(main):037:0> scan 'User', {LIMIT => 2}
    ROW                                     COLUMN+CELL
     row1                                   column=info:name, timestamp=1502368030841, value=xiaoming
     row2                                   column=info:age, timestamp=1502368069926, value=18
    2 row(s) in 0.0170 seconds

    范围查询

    hbase(main):011:0> scan 'User', {STARTROW => 'row2'}
    ROW                                     COLUMN+CELL
     row2                                   column=info:age, timestamp=1502368069926, value=18
     row3                                   column=info:sex, timestamp=1502368093636, value=man
    2 row(s) in 0.0170 seconds
    hbase(main):012:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row2'}
    ROW                                     COLUMN+CELL
     row2                                   column=info:age, timestamp=1502368069926, value=18
    1 row(s) in 0.0110 seconds
    
    hbase(main):013:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}
    ROW                                     COLUMN+CELL
     row2                                   column=info:age, timestamp=1502368069926, value=18
    1 row(s) in 0.0120 seconds

    另外,还可以添加TIMERANGE和FITLER等高级功能

    STARTROW,ENDROW必须大写,否则报错;查询结果不包含等于ENDROW的结果集

    4. 统计表记录数
    语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}

    INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

    hbase(main):020:0> count 'User'
    3 row(s) in 0.0360 seconds
    
    => 3

    5. 删除

    删除列

    hbase(main):008:0> delete 'User', 'row1', 'info:age'
    0 row(s) in 0.0290 seconds

    删除所有行

    hbase(main):014:0> deleteall 'User', 'row2'
    0 row(s) in 0.0090 seconds

    删除表中所有数据

    hbase(main):016:0> truncate 'User'
    Truncating 'User' table (it may take a while):
     - Disabling table...
     - Truncating table...
    0 row(s) in 3.6610 seconds
    • 表管理

    1. 禁用表

    hbase(main):014:0> disable 'User'
    0 row(s) in 2.2660 seconds
    hbase(main):015:0> describe 'User'
    Table User is DISABLED
    User
    COLUMN FAMILIES DESCRIPTION
    {NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
    VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
    1 row(s) in 0.0340 seconds
    
    hbase(main):016:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}
    ROW                                     COLUMN+CELL
    
    ERROR: User is disabled.

    2. 启用表

    hbase(main):017:0> enable 'User'
    0 row(s) in 1.3470 seconds
    
    hbase(main):018:0> describe 'User'
    Table User is ENABLED
    User
    COLUMN FAMILIES DESCRIPTION
    {NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
    VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
    1 row(s) in 0.0310 seconds
    
    hbase(main):019:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}
    ROW                                     COLUMN+CELL
     row2                                   column=info:age, timestamp=1502368069926, value=18
    1 row(s) in 0.0280 seconds

    3. 测试表是否存在

    hbase(main):022:0> exists 'User'
    Table User does exist
    0 row(s) in 0.0150 seconds
    
    hbase(main):023:0> exists 'user'
    Table user does not exist
    0 row(s) in 0.0110 seconds
    
    hbase(main):024:0> exists user
    NameError: undefined local variable or method `user' for #<Object:0x412ebe64>

    4. 删除表

    删除前,必须先disable

    hbase(main):030:0> drop 'TEST.USER'
    
    ERROR: Table TEST.USER is enabled. Disable it first.
    
    Here is some help for this command:
    Drop the named table. Table must first be disabled:
      hbase> drop 't1'
      hbase> drop 'ns1:t1'
    
    hbase(main):031:0> disable 'TEST.USER'
    0 row(s) in 2.2640 seconds
    
    hbase(main):033:0> drop 'TEST.USER'
    0 row(s) in 1.2490 seconds
    
    hbase(main):034:0> list
    TABLE
    SYSTEM.CATALOG
    SYSTEM.FUNCTION
    SYSTEM.SEQUENCE
    SYSTEM.STATS
    User
    5 row(s) in 0.0080 seconds
    
    => ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "User"]
  • 相关阅读:
    20201208史逸霏第六章学习笔记
    第三章笔记
    实现ls
    mystat
    改进ls
    第十章笔记
    cat userlist
    第七、八章笔记
    mypwd
    类成员函数指针写入map里怎么才能调用它呢?转载
  • 原文地址:https://www.cnblogs.com/breg/p/8043964.html
Copyright © 2020-2023  润新知