博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase 相关API操练(一):Shell操作
阅读量:7281 次
发布时间:2019-06-30

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

   HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”。

        HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建、删除及修改表, 还可以向表中添加数据、列出表中的相关信息等。

        备注:写错 HBase Shell 命令时用键盘上的“Delete”进行删除,“Backspace”不起作用。

        在启动 HBase 之后,用户可以通过下面的命令进入 HBase Shell 之中,命令如下所示:

[hadoop@master hbase]$ bin/hbase shell2018-06-04 16:35:46,762 INFO  [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.availableHBase Shell; enter 'help
' for list of supported commands.Type "exit
" to leave the HBase ShellVersion 0.98.19-hadoop2, r1e527e73bc539a04ba0fa4ed3c0a82c7e9dd7d15, Fri Apr 22 19:07:24 PDT 2016hbase(main):001:0>

 

        输入 help 可以看到命令分组。

 

Group Name Commands
general status,version
ddl alter,create,describe,disable,drop,enable,exists,is_disable,is_enable,list
dml count,delete,deleteall,get,get_counter,incr,put,scan,truncate
tools assign,balance_switch,balancer,close_region,compact,flush,major_compact,move,split,unassign,zk_dump
replication add_peer,disable_peer,enable_peer,remove_peer,start_replication,stop_replication

        部分命令清单。

名称 命令表达式
创建表 create '表名称','列名称1','列名称2','列名称N'
添加记录 put '表名','行名','列名','值'
查看记录 get '表名','行名'
查看表中的记录总数 count '表名'
删除记录 delete '表名','行名称','列名称'
删除一张表 第一步 disable'表名称'(先要屏蔽该表,才能对该表进行删除) 
第二步 drop '表名称'
查看所有记录 scan '表名称'
查看某个表某个列中的所有数据 scan '表名称',['列名称:']
更新记录 就是重写一遍进行覆盖

        下边分组举例 Shell 的各种操作。

general操作

        查询 HBase 服务器状态 status。

hbase(main):002:0> status2018-06-04 15:49:42,011 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/home/hadoop/app/hbase-0.98.19/lib/phoenix-4.8.2-HBase-0.98-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/home/hadoop/app/hbase-0.98.19/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.6.0/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.1 active master, 0 backup masters, 1 servers, 0 dead, 7.0000 average load

 

        查询hbase版本 version

hbase(main):003:0> version0.98.19-hadoop2, r1e527e73bc539a04ba0fa4ed3c0a82c7e9dd7d15, Fri Apr 22 19:07:24 PDT 2016

 

ddl操作

        1、 创建一个表

 
hbase(main):004:0> create 'member','memeber_id','address','info'0 row(s) in 0.5980 seconds=> Hbase::Table – member 

        2、 列出所有的表

hbase(main):005:0> listTABLE                                                                                                                                                        SYSTEM.CATALOG                                                                                                                                               SYSTEM.FUNCTION                                                                                                                                              SYSTEM.SEQUENCE                                                                                                                                              SYSTEM.STATS                                                                                                                                                 member                                                                                                                                                       tvcount                                                                                                                                                      6 row(s) in 0.0290 seconds=> ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "member", "tvcount"]

 

        3、 获得表的描述

 
hbase(main):008:0> describe 'member'Table member is ENABLED                                                                                                                                      member                                                                                                                                                       COLUMN FAMILIES DESCRIPTION                                                                                                                                  {NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                        {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                           {NAME => 'member_id', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                     3 row(s) in 0.0490 seconds

        4、 删除一个列族: disable -> alter -> enable

hbase(main):013:0> disable 'member'0 row(s) in 0.6500 secondshbase(main):011:0> alter 'member',{NAME=>'member_id',METHOD=>'delete'}Updating all regions with the new schema...1/1 regions updated.Done.0 row(s) in 1.2610 secondshbase(main):012:0> describe 'member'Table member is DISABLED                                                                                                                                    member                                                                                                                                                       COLUMN FAMILIES DESCRIPTION                                                                                                                                 {NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                       {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0',TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                          2 row(s) in 0.0370 secondshbase(main):013:0> enable 'member'0 row(s) in 0.6500 secondshbase(main):014:0> describe 'member'Table member is ENABLED                                                                                                                                      member                                                                                                                                                       COLUMN FAMILIES DESCRIPTION                                                                                                                                 {NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                       {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0',TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                          2 row(s) in 0.0300 seconds

 

 

 

        5、 查看表是否存在

 
hbase(main):015:0> exists 'member'
true                                                                                                                                                         0 row(s) in 0.0305 seconds 

        6、 判断表是否为‘enable’和‘disable’

 

 hbase(main):018:0> is_enabled 'member'

 true                                                                                                                                              

 0 row(s) in 0.0200 seconds

 hbase(main):021:0> is_disabled 'member'

 false                                                                                                                                               0 row(s) in 0.0210 seconds

        7、 删除一个表

hbase(main):013:0> disable 'member'0 row(s) in 0.6500 secondshbase(main):026:0> drop 'member'0 row(s) in 0.2570 secondshbase(main):027:0> listTABLE                                                                                                                                                        SYSTEM.CATALOG                                                                                                                                               SYSTEM.FUNCTION                                                                                                                                              SYSTEM.SEQUENCE                                                                                                                                              SYSTEM.STATS                                                                                                                                                 tvcount                                                                                                                                                      5 row(s) in 0.0060 seconds=> ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "tvcount"]

dml操作

      首先新建一个表 

 

hbase(main):028:0> create 'member','address','info'0 row(s) in 0.1550 seconds=> Hbase::Table - memberhbase(main):029:0> describe 'member'Table member is ENABLED                                                                                                                                      member                                                                                                                                                       COLUMN FAMILIES DESCRIPTION                                                                                                                                  {NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                        {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                           2 row(s) in 0.0370 seconds

 

 

 

  1、 插入几条记录

 
hbase(main):030:0> put 'member','zimo','info:age','28' 0 row(s) in 0.0750 secondshbase(main):031:0> put 'member','zimo','info:birthday','1994-07-17' 0 row(s) in 0.0080 secondshbase(main):032:0> put 'member','zimo','info:company','luoji' 0 row(s) in 0.0060 secondshbase(main):033:0> put 'member','zimo','address:country','china' 0 row(s) in 0.0100 secondshbase(main):034:0> put 'member','zimo','address:province','beijing' 0 row(s) in 0.0060 secondshbase(main):035:0> put 'member','zimo','address:city','beijing' 0 row(s) in 0.0050 seconds

        put命令比较简单,只有这一种用法:

  hbase> put ‘t1′, ‘r1′, ‘c1′, ‘value', ts1

  t1指表名,r1指行键名,c1指列名,value指单元格值。ts1指时间戳,一般都省略掉了。

        2、 全表扫描 scan

hbase(main):036:0> scan 'member'ROW                                      COLUMN+CELL                                                                                                          zimo                                    column=address:city, timestamp=1528100333405, value=beijing                                                          zimo                                    column=address:country, timestamp=1528100280333, value=china                                                         zimo                                    column=address:province, timestamp=1528100323616, value=beijing                                                      zimo                                    column=info:age, timestamp=1528100120269, value=28                                                                   zimo                                    column=info:birthday, timestamp=1528100169722, value=1994-07-17                                                      zimo                                    column=info:company, timestamp=1528100217095, value=luoji                                                           1 row(s) in 0.0510 seconds

 

        3、 获得数据 get

        1) 获得一行的所有数据

hbase(main):037:0> get 'member','zimo' COLUMN                                   CELL                                                                                                                 address:city                            timestamp=1528100333405, value=beijing                                                                               address:country                         timestamp=1528100280333, value=china                                                                                 address:province                        timestamp=1528100323616, value=beijing                                                                               info:age                                timestamp=1528100120269, value=28                                                                                    info:birthday                           timestamp=1528100169722, value=1994-07-17                                                                            info:company                            timestamp=1528100217095, value=luoji                                                                                6 row(s) in 0.0160 seconds

 

        2) 获得某行,某列族的所有数据

hbase(main):038:0> get 'member','zimo','info'COLUMN                                   CELL                                                                                                                 info:age                                timestamp=1528100120269, value=28                                                                                    info:birthday                           timestamp=1528100169722, value=1994-07-17                                                                            info:company                            timestamp=1528100217095, value=luoji                                                                                3 row(s) in 0.0130 seconds

 

        3) 获得某行,某列族,某列的所有数据

hbase(main):039:0> get 'member','zimo','info:company'COLUMN                                   CELL                                                                                                                 info:company                            timestamp=1528100217095, value=luoji                                                                                1 row(s) in 0.0100 seconds

 

        4、 更新一条记录 put(把scutshuxue年龄改为99)

 
hbase(main):040:0> put 'member','zimo','info:age','24' 0 row(s) in 0.0070 seconds 

        5、 删除 delete、 deleteall

        1) 删除行'zimo', 列族为‘info' 中age的值

hbase(main):042:0> delete 'member','zimo','info:age'0 row(s) in 0.0280 seconds hbase(main):043:0> get 'member','zimo'COLUMN                                   CELL                                                                                                                address:city                            timestamp=1528100333405, value=beijing                                                                               address:country                         timestamp=1528100280333, value=china                                                                                address:province                        timestamp=1528100323616, value=beijing                                                                              info:birthday                           timestamp=1528100169722, value=1994-07-17                                                                           info:company                            timestamp=1528100217095, value=luoji                                                                                5 row(s) in 0.0180 seconds

 

        2) 删除整行

deleteall 'member', 'zimo'

        6、 查询表中有多少行

hbase(main):044:0> count 'member'1 row(s) in 0.0190 seconds=> 1

 

        7、 将整个表清空

hbase(main):046:0> truncate 'member'Truncating 'member' table (it may take a while): - Disabling table... - Truncating table...0 row(s) in 1.5320 seconds

 

        可以看出,HBase 是通过先对表执行 disable,然后再执行 drop 操作后重建表来实现 truncate 的功能的。

 

 

以上就是博主为大家介绍的这一板块的主要内容,这都是博主自己的学习过程,希望能给大家带来一定的指导作用,有用的还望大家点个支持,如果对你没用也望包涵,有错误烦请指出。如有期待可关注博主以第一时间获取更新哦,谢谢! 

 

 版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/zimo-jing/p/9134319.html

你可能感兴趣的文章
关于 Xcode 9 拖入文件未生效的问题
查看>>
贝聊VPC迁移
查看>>
如何解决jquery.jsonp在并发下容易发生异常的bug
查看>>
Spring事务注解Transactional的正确使用姿势
查看>>
JS中的THIS处理及正则表达式 — 2、综合实战:华为商城产品排序
查看>>
『高级篇』docker之服务编排三大平台扬帆起航(21)
查看>>
ApplicationContext 与 BeanFactory 区别
查看>>
android常用设计模式之简单工厂模式
查看>>
【Python实战】用Scrapy编写“1024网站种子吞噬爬虫”,送福利
查看>>
关于mongodb的学习与探索一
查看>>
Zookeeper开发实例
查看>>
如何启用SAP C4C OData Event Notification
查看>>
Js传递数组参数到后台controller的方式
查看>>
名师课堂-Java高级开发
查看>>
2.1.3 Python面向对象之异常处理
查看>>
对话 | 浅析NEO的dBFT共识算法
查看>>
阿里研究院入选中国企业智库系统影响力榜
查看>>
[译] 解密 Mapbox 卫星影像处理神器 Robosat
查看>>
什么是闭包?闭包的优缺点?
查看>>
991. Broken Calculator
查看>>