博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase常用操作命令
阅读量:5972 次
发布时间:2019-06-19

本文共 7822 字,大约阅读时间需要 26 分钟。

hot3.png

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

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 shellSLF4J: 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
' for list of supported commands.Type "exit
" to leave the HBase ShellVersion 1.2.0-cdh5.8.3, rUnknown, Wed Oct 12 20:33:08 PDT 2016hbase(main):035:0> whoamihadoop (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> listTABLESYSTEM.CATALOGSYSTEM.FUNCTIONSYSTEM.SEQUENCESYSTEM.STATSTEST.USERUser6 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 ENABLEDUserCOLUMN FAMILIES DESCRIPTION{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}1 row(s) in 0.1410 secondshbase(main):025:0> desc 'User'Table User is ENABLEDUserCOLUMN FAMILIES DESCRIPTION{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', 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 secondshbase(main):006:0> put 'User', 'row2', 'info:age', '18'0 row(s) in 0.0170 secondshbase(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=181 row(s) in 0.0280 secondshbase(main):028:0> get 'User', 'row3', 'info:sex'COLUMN                                  CELL info:sex                               timestamp=1502368093636, value=manhbase(main):036:0> get 'User', 'row1', {COLUMN => 'info:name'}COLUMN                                  CELL info:name                              timestamp=1502368030841, value=xiaoming1 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=man3 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=182 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=man2 row(s) in 0.0170 secondshbase(main):012:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row2'}ROW                                     COLUMN+CELL row2                                   column=info:age, timestamp=1502368069926, value=181 row(s) in 0.0110 secondshbase(main):013:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}ROW                                     COLUMN+CELL row2                                   column=info:age, timestamp=1502368069926, value=181 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 secondshbase(main):015:0> describe 'User'Table User is DISABLEDUserCOLUMN FAMILIES DESCRIPTION{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}1 row(s) in 0.0340 secondshbase(main):016:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}ROW                                     COLUMN+CELLERROR: User is disabled.

2. 启用表

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

3. 测试表是否存在

hbase(main):022:0> exists 'User'Table User does exist0 row(s) in 0.0150 secondshbase(main):023:0> exists 'user'Table user does not exist0 row(s) in 0.0110 secondshbase(main):024:0> exists userNameError: undefined local variable or method `user' for #

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 secondshbase(main):033:0> drop 'TEST.USER'0 row(s) in 1.2490 secondshbase(main):034:0> listTABLESYSTEM.CATALOGSYSTEM.FUNCTIONSYSTEM.SEQUENCESYSTEM.STATSUser5 row(s) in 0.0080 seconds=> ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "User"]

转载于:https://my.oschina.net/u/1458864/blog/2056296

你可能感兴趣的文章
艾伟也谈项目管理,如何完成看似不可能完成的任务
查看>>
[转]gtest使用
查看>>
VS操作技巧
查看>>
java 获取当前函数名
查看>>
async & await 的用法
查看>>
RabbitMQ学习2---使用场景
查看>>
mac平台安装类似yum的工具
查看>>
PHP多种序列化/反序列化的方法(serialize和unserialize函数)
查看>>
python开发_difflib字符串比较
查看>>
被解放的姜戈01 初试天涯
查看>>
mongodb基本数据类型
查看>>
三极管工作区在Spectre中的表示
查看>>
HT for Web的HTML5树组件延迟加载技术实现
查看>>
ASP.NET MVC 3 Razor Nested foreach with if statements
查看>>
【Mysql】命令行
查看>>
Asterisk 安装与配置
查看>>
SQL2008-中不想插入从复记录
查看>>
.Net基础
查看>>
AES加密算法原理
查看>>
《Programming WPF》翻译 第8章 4.关键帧动画
查看>>