首页 / HBASE / HBase Shell基本操作
HBase Shell基本操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了HBase Shell基本操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3852字,纯文字阅读大概需要6分钟。
内容图文
![HBase Shell基本操作](/upload/InfoBanner/zyjiaocheng/978/cba294a7c1804be9ba5a4a1d6ec83452.jpg)
HBase Shell基本操作
实验目的
1.学习HBase Shell基本操作
实验原理
HBase Shell基本操作命令如表所示:
DDL、DML、DCL介绍(这里不全部适用于HBase):
DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL(data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。
实验环境
Linux Ubuntu 14.04
jdk-7u75-linux-x64
Hadoop 2.6.0-cdh5.4.5
HBase 1.0.0-cdh5.4.5
实验内容
掌握HBase的DDL(数据定义语言)和DML(数据操纵语言)命令
实验步骤
1.首先,我们切换到/apps/hadoop/sbin目录下,开启hadoop相关进程
?- cd /apps/hadoop/sbin
- ./start-all.sh
2.然后切换到/apps/hbase/bin目录下,开启hbase相关进程
?- cd /apps/hbase/bin
- ./start-hbase.sh
3.使用JPS查看相关进程
?- jps
4.输入hbase shell进入shell环境
?- hbase shell
5.使用version命令查看版本信息
?- version
6.使用status命令查看服务器状态
?- status
7.使用whoami命令可查看当前用户
?- whoami
8.使用list命令来查看一下都有哪些表
?- list
9.我们来创建一张表,表的参数如下:
表名为table_name,列族名为f1(语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>})
?- create 'table_name','f1'
我们也可以指定数据保存的版本数,如:create 'table_name2',{NAME => 'f1', VERSIONS => 2}
10.使用exists命令查看table_name表是否存在
?- exists 'table_name'
11.使用desc命令来查看一下table_name表结构(语法:describe <table>)
?- desc 'table_name'
12.修改table_name的表结构,将TTL(生存周期)改为30天,这里要注意,修改表结构前必须先disable使表失效,修改完成后再使用enable命令,使表重新生效(可用is_enabled 'table_name'或is_disabled 'table_name'判断表的状态)
?- disable 'table_name'
- alter 'table_name',{NAME=>'f1',TTL=>'2592000'}
- enable 'table_name'
这里2592000为30天的秒数,再次使用desc命令会发现表的TTL已经改为了2592000
13.现在我们使用put命令向table_name表中插入一行数据
(语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>)
?- put 'table_name','rowkey001','f1:col1','value1'
- put 'table_name','rowkey001','f1:col2','value2'
- put 'table_name','rowkey002','f1:col1','value1'
这其中,'table_name'为表名,'rowkey001'为rowkey,'f1:col1' f1为列族,col1为列,'value1'为值,同一个列族下可以有多个列,同一个rowkey视为同一行。
14.使用get命令来查询一下table_name表,rowkey001中的f1下的col1的值
(语法:get <table>,<rowkey>,[<family:column>,....])
?- get 'table_name','rowkey001', 'f1:col1'
另一种用法:
?- get 'table_name','rowkey001', {COLUMN=>'f1:col1'}
15.查询表table_name,rowkey001中的f1下的所有列值
?- get 'table_name','rowkey001'
16.使用scan命令扫描全表(语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num})
?- scan 'table_name'
也可以限定扫描表的前几行数据,我们扫描前1行数据
?- scan 'table_name',{LIMIT=>1}
由此也可以看出,rowkey相同的数据视为一行数据
17.使用count命令,查看table_name表中的数据行数
(语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum})
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
查询表table_name中的数据行数,每10条显示一次,缓存区为200
?- count 'table_name', {INTERVAL => 10, CACHE => 200}
由于我们的数据只有2行,所以查询结果为2
18.使用delete命令删除table_name表中,rowkey001中的f1:col2的数据
(语法:delete <table>, <rowkey>, <family:column> , <timestamp>,必须指定列名)
?- delete 'table_name','rowkey001','f1:col2'
这里需要注意,如果该列保存有多个版本的数据,将一并被删除
19.使用deleteall命令,删除table_name表中rowkey002这行数据
(语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>,可以不指定列名,删除整行数据)
?- deleteall 'table_name','rowkey002'
20.使用truncate命令,删除table_name表中的所有数据
(语法: truncate <table> 其具体过程是:disable table -> drop table -> create table)
?- truncate 'table_name'
至此,我们的实验就已经结束了
? 发送消息 ? ?内容总结
以上是互联网集市为您收集整理的HBase Shell基本操作全部内容,希望文章能够帮你解决HBase Shell基本操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。