实验4·使用HBase Shell完成《王者荣耀》玩家信息管理

实验4·使用HBase Shell完成《王者荣耀》玩家信息管理

1 实验目的

  1. 回顾HBase的基础理论知识;
  2. 熟悉HBase的基础操作;
  3. 熟悉HBase Shell中常用的DDL(Data Definition Language)和DML(Data Manipulation Language)命令。

2 实验平台

操作系统:Linux
Hadoop版本:2.7.1或以上版本
JDK版本:1.6或以上版本
Java IDE:Eclipse
HBase版本:HBase1.1.5

3 实验内容和要求

一、Hbase的基础操作回顾:

(1)单机模式运行Hbase;

1. cd /usr/local/hbase  
2. bin/start-hbase.sh  
3. bin/hbase shell  
4. bin/stop-hbase.sh  

在这里插入图片描述
(2)伪分布模式运行Hbase;

1. cd /usr/local/hadoop        #再切换目录至/usr/local/hadoop     
2. ./sbin/start-dfs.sh             #再启动hadoop  
3. cd /usr/local/hbase  
4. bin/start-hbase.sh  
5. bin/hbase shell  
6. bin/stop-hbase.sh 

在这里插入图片描述

二、使用HBase Shell完成《王者荣耀》(或者任何你喜欢的游戏)玩家信息管理

(3)启动Hbase,进入到Hbase的shell界面,并在shell界面查看Hbase已经有了哪些表;

  • 启动Hbase之前先启动Hadoop
    在这里插入图片描述
  • 再启动Hbase进入到shell界面,查看已有的表
    在这里插入图片描述

(4)在Hbase中新创建一张表, 以你喜欢的游戏命名;注意请精心设计你所创建的表,比如:
在这里插入图片描述
在这里插入图片描述
(5)创建完成之后,查看新创建的表的详细信息;
在这里插入图片描述
(6)表的详细信息中,各列族的具体信息如下:
在这里插入图片描述
选择不少于3个条目进行解释,如;

列族描述中的各条目功能描述
NAME列族名
BLOOMFILTER按照行提高随机读的性能
VERSIONS指此单元格内的数据可以保留最近的版本数
BLOCKCACHE读取数据时是否进行缓存

(7)修改表的某个列族的某个具体信息:可用alter命令修改表的列族信息,即为表增加列族,或者修改列族(当该列族已经存在时),语法为;

alter '表名'{NAME=>'列族名',参数名=>'参数值'}

改动完成之后,查看改动是否成功
在这里插入图片描述
(8)尝试用同样的alter命令为此表增加一个新的列族;
在这里插入图片描述
(9)将创建的表删除:要在Hbase中删除一个表,首先需要禁用它。因此,尝试禁用你所创建的表,以及禁用之后如何又重新启用它,并且每一步都需要验证操作是否成功(即禁用之后,验证是否禁用成功,等等),然后将此表删除,并查看是否删除成功:
在这里插入图片描述
由于’GloryofKing’已经被我删除,无法验证是否禁用成功。只好用剩下的‘teacher’表来验证
在这里插入图片描述在这里插入图片描述
三、熟悉Hbase的DML操作,DML主要是针对表中数据本身的操作

(10)重新创建刚才的《王者荣耀》玩家信息表(或者你所创建的随便其他的什么表);
在这里插入图片描述
(11)用 put 命令往表中添加数据,语法为:

put 'table' , 'rowkey".'family:column', 'value',timestamp'  

下图为部分截图:
个人信息
在这里插入图片描述
资产信息
在这里插入图片描述
战绩信息
在这里插入图片描述
常用英雄
在这里插入图片描述

重要要求:
请自行设计自由发挥,列族数不得少于4个!每个列族中的列不得少于4个,特殊情况(如个人信息只有账户和昵称)除外,数据条目,即行键不得少于5条。

(12)数据添加完成之后,使用scan 命令验证其是否添加成功
在这里插入图片描述
(13)Hbase表中的数据全部添加完成之后,来对其中的数据做查询操作,首先,用scan命令查询某一个列族的数据,语法为:

scan 'table,{COLUMNS => 'family'}

如要查询personallnfo个人信息:
在这里插入图片描述

(14)查看指定的某个列族的某个列,语法为::

scan 'table',{COLUMNS =>['family:column']}  

如要查询personallnfo下的userID:
在这里插入图片描述
(15)scan命令查找的目标是全表的某个列族或者某个列,而另外的一个查找命令 get ,则是查找的某行的某个列族或者列,因此,其多了一个行键参数,语法为:

1.get 'table ,'row-key'  
2.get 'table' , 'row-key',{COLUMN=>'family:column'}  
  • 使用get命令,查询表中任意一个列族的全部信息;
    在这里插入图片描述
  • 使用get命令,查询表中任意一个列族的任意一列的信息;
    在这里插入图片描述
  • 使用get命令,指定表中的多个列族,进行查询;
    在这里插入图片描述
  • 使用get命令,不指定表中的列族,对某一行键的全部信息进行查询;
    在这里插入图片描述

(16)使用 delete 命令,删除Hbase中的某一个单元,语法为:
在这里插入图片描述
删除完成之后,使用get命令查看验证是否成功;
在这里插入图片描述
(17)使用 deleteall 命令,删除Hbase中的某一行键的所有数据,
在这里插入图片描述
删除完成之后,同样使用get命令查看是否成功;
在这里插入图片描述
(18)使用 truncate 命令,清空Hbase中的某一个表的所有数据,
清空完成之后,查看是否成功
在这里插入图片描述
清空完成之后,查看是否成功
在这里插入图片描述
(19)将空表删除,自此实验4全部完成
在这里插入图片描述
(20)关闭hbase,关闭hadoop
在这里插入图片描述
HBASE样表:
在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值