Hbase基本操作

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 16.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相关进程

view plain copy
cd /apps/hadoop/sbin
./start-all.sh

2.然后切换到/apps/hbase/bin目录下,开启hbase相关进程

view plain copy
cd /apps/hbase/bin
./start-hbase.sh

3.使用JPS查看相关进程

view plain copy
jps

4.输入hbase shell进入shell环境

view plain copy
hbase shell

5.使用version命令查看版本信息

view plain copy
version

6.使用status命令查看服务器状态

view plain copy
status

7.使用whoami命令可查看当前用户

view plain copy
whoami

8.使用list命令来查看一下都有哪些表

view plain copy
list

9.我们来创建一张表,表的参数如下:

表名为table_name,列族名为f1(语法:create

, {NAME => , VERSIONS => })

view plain copy
create ‘table_name’,‘f1’
我们也可以指定数据保存的版本数,如:create ‘table_name2’,{NAME => ‘f1’, VERSIONS => 2}

10.使用exists命令查看table_name表是否存在

view plain copy
exists ‘table_name’

11.使用desc命令来查看一下table_name表结构(语法:describe

view plain copy
desc ‘table_name’

12.修改table_name的表结构,将TTL(生存周期)改为30天,这里要注意,修改表结构前必须先disable使表失效,修改完成后再使用enable命令,使表重新生效(可用is_enabled 'table_name’或is_disabled 'table_name’判断表的状态)

view plain copy
disable ‘table_name’
alter ‘table_name’,{NAME=>‘f1’,TTL=>‘2592000’}
enable ‘table_name’
这里2592000为30天的秒数,再次使用desc命令会发现表的TTL已经改为了2592000

13.现在我们使用put命令向table_name表中插入一行数据

(语法:put

,, family:column,,)

view plain copy
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

,,[ family:column,…])

view plain copy
get ‘table_name’,‘rowkey001’, ‘f1:col1’
另一种用法:

view plain copy
get ‘table_name’,‘rowkey001’, {COLUMN=>‘f1:col1’}

15.查询表table_name,rowkey001中的f1下的所有列值

view plain copy
get ‘table_name’,‘rowkey001’

16.使用scan命令扫描全表(语法:scan

, {COLUMNS => [ family:column,… ], LIMIT => num})

view plain copy
scan ‘table_name’
也可以限定扫描表的前几行数据,我们扫描前1行数据

view plain copy
scan ‘table_name’,{LIMIT=>1}

由此也可以看出,rowkey相同的数据视为一行数据

17.使用count命令,查看table_name表中的数据行数

(语法:count

, {INTERVAL => intervalNum, CACHE => cacheNum})

INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

查询表table_name中的数据行数,每10条显示一次,缓存区为200

view plain copy
count ‘table_name’, {INTERVAL => 10, CACHE => 200}

由于我们的数据只有2行,所以查询结果为2

18.使用delete命令删除table_name表中,rowkey001中的f1:col2的数据

(语法:delete

, , family:column , ,必须指定列名)

view plain copy
delete ‘table_name’,‘rowkey001’,‘f1:col2’
这里需要注意,如果该列保存有多个版本的数据,将一并被删除

19.使用deleteall命令,删除table_name表中rowkey002这行数据

(语法:deleteall

, , family:column , ,可以不指定列名,删除整行数据)

view plain copy
deleteall ‘table_name’,‘rowkey002’
20.使用truncate命令,删除table_name表中的所有数据

(语法: truncate

其具体过程是:disable table -> drop table -> create table)

view plain copy
truncate ‘table_name’

至此,我们的实验就已经结束了

提交保存

发送消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值