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

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

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

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

[hadoop@master hbase]$ bin/hbase shell
-- ::, INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.-hadoop2, r1e527e73bc539a04ba0fa4ed3c0a82c7e9dd7d15, Fri Apr :: PDT hbase(main)::>

输入 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)::> status
-- ::, WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/app/hbase-0.98./lib/phoenix-4.8.-HBase-0.98-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hbase-0.98./lib/slf4j-log4j12-1.6..jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.6./share/hadoop/common/lib/slf4j-log4j12-1.7..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)::> version
0.98.19-hadoop2, r1e527e73bc539a04ba0fa4ed3c0a82c7e9dd7d15, Fri Apr :: PDT

ddl操作

1、 创建一个表


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

2、 列出所有的表

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

3、 获得表的描述


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

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

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

5、 查看表是否存在


hbase(main)::> 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)::> disable 'member'
row(s) in 0.6500 seconds hbase(main)::> drop 'member'
row(s) in 0.2570 seconds hbase(main)::> list
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.SEQUENCE
SYSTEM.STATS
tvcount
row(s) in 0.0060 seconds => ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "tvcount"]

dml操作

首先新建一个表

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

  1、 插入几条记录


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

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

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

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

2、 全表扫描 scan

hbase(main)::> scan 'member'
ROW COLUMN+CELL
zimo column=address:city, timestamp=, value=beijing
zimo column=address:country, timestamp=, value=china
zimo column=address:province, timestamp=, value=beijing
zimo column=info:age, timestamp=, value=
zimo column=info:birthday, timestamp=, value=--
zimo column=info:company, timestamp=, value=luoji
row(s) in 0.0510 seconds

3、 获得数据 get

1) 获得一行的所有数据

hbase(main)::> get 'member','zimo'
COLUMN CELL
address:city timestamp=, value=beijing
address:country timestamp=, value=china
address:province timestamp=, value=beijing
info:age timestamp=, value=
info:birthday timestamp=, value=--
info:company timestamp=, value=luoji
row(s) in 0.0160 seconds

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

hbase(main)::> get 'member','zimo','info'
COLUMN CELL
info:age timestamp=, value=
info:birthday timestamp=, value=--
info:company timestamp=, value=luoji
row(s) in 0.0130 seconds

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

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

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


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

5、 删除 delete、 deleteall

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

hbase(main)::> delete 'member','zimo','info:age'
row(s) in 0.0280 seconds
hbase(main)::> get 'member','zimo' COLUMN CELL address:city timestamp=, value=beijing
address:country timestamp=, value=china
address:province timestamp=, value=beijing
info:birthday timestamp=, value=--
info:company timestamp=, value=luoji row(s) in 0.0180 seconds

2) 删除整行

deleteall 'member', 'zimo'

6、 查询表中有多少行

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

7、 将整个表清空

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

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

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

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

HBase 相关API操练(一):Shell操作的更多相关文章

  1. HBase 相关API操练(三):MapReduce操作HBase

    MapReduce 操作 HBase 在 HBase 系统上运行批处理运算,最方便和实用的模型依然是 MapReduce,如下图所示. HBase Table 和 Region 的关系类似 HDFS ...

  2. HBase 相关API操练(二):Java API

    一.HBase Java编程 (1)HBase是用Java语言编写的,它支持Java编程: (2)HBase支持CRUD操作:Create,Read,Update和Delete: (3)Java AP ...

  3. HBase学习笔记——配置及Shell操作

    1.HBase的配置 还是以前配置的集群,见:http://www.cnblogs.com/DarrenChan/p/6493373.html 我们约定:weekend03和weekend04放HMa ...

  4. HBase篇--HBase操作Api和Java操作Hbase相关Api

    一.前述. Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下. 二.说明 Hbase shell中删除键是空格+Ctrl键. 三.代码 1.封装所有的API pa ...

  5. Hbase集群部署及shell操作

    本文详述了Hbase集群的部署. 集群部署 1.将安装包上传到集群并解压 scp hbase-0.99.2-bin.tar.gz mini1:/root/apps/ tar -zxvf hbase-0 ...

  6. hbase集群安装和shell操作

    1.上传hbase安装包 2.解压 3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了) 注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/ ...

  7. Mac中如何高亮显示当前git分支以及相关切换系统默认shell操作

    前言 在开发中对于使用git的同学,肯定会需要高亮显示当前分支,我们今天就来说一种最简单的办法,先来看一下效果图 实现 1.安装item2 https://www.iterm2.com 2.安装oh- ...

  8. 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理

    第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...

  9. Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作

    Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法 ...

随机推荐

  1. OpenStack、CloudStack、Eucalyptus和vCloud Director四大主流云平台怎么选?

    软件产品开发公司Altoros Systems的IT基础设施设计师Vadim Truksha在美国<网络世界>上发表一篇文章,详细对比了CloudStack.Eucalyptus.vClo ...

  2. Python:列表反序和解析

    1)列表反序 A.list.reverse():将列表反序: l = [1, 2, 3, 4, 5] print(l.reverse()) -->[5, 4, 3, 2, 1] B.l.[::- ...

  3. 【转】 Pro Android学习笔记(二一):用户界面和控制(9):Gallery和SimpleAdapter

    Gallery画廊式控件,如图所示,但是在API level 16,也即Android 4.1,被deprecated,可以使用HorizontableScroolView和ViewPager.但是后 ...

  4. hdu 1074 状态压缩

    http://acm.hdu.edu.cn/showproblem.php?pid=1074 我们可以断定状态的终止态一定是n个数全部选完的情况,那么它的前一个状态是什么呢,一定是剔除任一门课程后的n ...

  5. 通过能别的主机连接yum库

    本地有两台主机,分别为:192.168.2.131/24和192.168.2.132/24,本地yum源只能连接互联网: 这两台设备的虚拟机配置如下: 现有一台主机:172.16.254.88/16可 ...

  6. oracle--基础查询(1)

    --查询所有列语句 select * from emp; ---查询指定列表的查询语句 select empno,ename,sal from emp; --带有简单算术运算符的简单查询 select ...

  7. mybatis 学习二 conf xml 配置信息

    xml映射配置文件      这个xml文件主要包括一下节点信息      * properties 属性      * settings 设置      * typeAliases 类型命名     ...

  8. MS SQL update set select

    有张表a,已经有数据 再有张表b,也已查询出数据 两张表有外键关联 需求如下: 更新表a中的某个字段,这个字段要加上(都是int型的数据)对应表b中的数据作为更新的最终数据 )) from #libL ...

  9. IOS网络同步请求

    //1.目标地址 NSString *url_string = @"http://b33.photo.store.qq.com/psu?/05ded9dc-1001-4be2-b975-13 ...

  10. mycat的安装与配置

    前提:mycat安装前需先实现主从复制,主从复制不会的,请看 文章 .另外,配置前需关掉selinux. 一.此次测试环境总共有四台机: mycat: 10.0.0.20 mysql_master: ...