HBase 相关API操练(一):Shell操作
HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”。
HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建、删除及修改表, 还可以向表中添加数据、列出表中的相关信息等。
在启动 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操作的更多相关文章
- HBase 相关API操练(三):MapReduce操作HBase
MapReduce 操作 HBase 在 HBase 系统上运行批处理运算,最方便和实用的模型依然是 MapReduce,如下图所示. HBase Table 和 Region 的关系类似 HDFS ...
- HBase 相关API操练(二):Java API
一.HBase Java编程 (1)HBase是用Java语言编写的,它支持Java编程: (2)HBase支持CRUD操作:Create,Read,Update和Delete: (3)Java AP ...
- HBase学习笔记——配置及Shell操作
1.HBase的配置 还是以前配置的集群,见:http://www.cnblogs.com/DarrenChan/p/6493373.html 我们约定:weekend03和weekend04放HMa ...
- HBase篇--HBase操作Api和Java操作Hbase相关Api
一.前述. Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下. 二.说明 Hbase shell中删除键是空格+Ctrl键. 三.代码 1.封装所有的API pa ...
- Hbase集群部署及shell操作
本文详述了Hbase集群的部署. 集群部署 1.将安装包上传到集群并解压 scp hbase-0.99.2-bin.tar.gz mini1:/root/apps/ tar -zxvf hbase-0 ...
- hbase集群安装和shell操作
1.上传hbase安装包 2.解压 3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了) 注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/ ...
- Mac中如何高亮显示当前git分支以及相关切换系统默认shell操作
前言 在开发中对于使用git的同学,肯定会需要高亮显示当前分支,我们今天就来说一种最简单的办法,先来看一下效果图 实现 1.安装item2 https://www.iterm2.com 2.安装oh- ...
- 大数据技术之_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 ...
- Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作
Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法 ...
随机推荐
- 使用雅虎YUI Compressor压缩JS过程心得记录
对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...
- nop前端分页实现思路及步骤
注:nop本身已经有啦可以实现分页的类,所以我们直接去使用就可以啦 . (编程部分)步骤如下: 第一步,针对Model操作,在需要使用分页的界面Model中将分页类作为该Model类的成员,并在Mod ...
- SpringMvc之参数绑定注解详解之三
2. @RequestHeader.@CookieValue @RequestHeader 注解,可以把Request请求header部分的值绑定到方法的参数上. 示例代码: 这是一个Request ...
- tar 排除某个目录
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat
- C# 判断路径和文件存在
1.判断路径是否存在,不存在则创建路径: if (!System.IO.Directory.Exists(@"D:\Export")) { System.IO.Directory. ...
- 孙鑫VC学习系列教程
教程简介 1.循序渐进 从Win32SDK编程开始讲解,帮助大家理解掌握Windows编程的核心 -- 消息循环机制. 2.通俗易懂 编程语言枯燥难懂,然而通过孙鑫老师形象化的讲解,Windows和M ...
- SpringBoot04 SpringBoot 和 MyBatis 整合
1 所需的jar包 mysql驱动包:mysql-connector-java 数据库链接池:druid mybatis对应jar包:mybatis-spring-boot-starter 分页查询对 ...
- p1098 逆序对
传送门 题目 输入格式: 第一行,一个数n,表示序列中有n个数. 第二行n个数,表示给定的序列. 输出格式: 给定序列中逆序对的数目. 数据范围: 对于50%的数据,n≤2500 对于100%的数据, ...
- day1_2_3
DD烧写命令(mfgtools-without-rootfs.tar.gz) ubuntu minicom svn 应用层进程阻塞调试 多机共享 securecrt的远程登录以及调试 tengxunt ...
- swiper实现左右滑动图片
ref:http://www.swiper.com.cn/usage/index.html help:https://segmentfault.com/a/1190000002962202 src: ...