一、实验概述: 【实验目的】
- 掌握HBase数据库的安装部署方法;
- 掌握HBase操作常用Shell命令;
- 掌握HBase数据表的创建、添加数据、查看数据、删除数据、删除表、查询历史数据等操作。
【实验要求】
- 保存程序,并自行存档;
- 最终的程序都必须经过测试,验证是正确的;
- 认真记录实验过程及结果,回答实验报告中的问题。
【实施环境】(使用的材料、设备、软件)
Linux操作系统环境,VirtualBox虚拟机,Hadoop、HBase等程序。
二、实验内容
第1题 HBase环境的安装与配置实验 【实验内容】
请结合课程实验教材相关内容,在自己的电脑上安装HBase环境(单机模式或伪分布式模式),并对安装步骤进行详细描述和记录。
【实验结果】(步骤、记录、数据、程序等)
请提供相应Shell界面截图证明。
回答:
1.下载hbase安装包到opt目录并解压
2.给hadoop用户赋权
3.单机模式配置
- 配置hbase-env.sh
添加java路径并将 HBASE_MANAGES_ZK 的值改为 true
- 配置hbase-site.xml
将 configuration 里的内容替换为
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/hbase/hbase-tmp</value>
</property>
</configuration>
- 查看hbase的版本
- 启动hbase
使用jps,出现HMaster,代表启动成功。
- 关闭hbase
4.伪分布模式配置
- 配置hbase-env.sh
- 配置hbase-site.xml
将 configuration 里的内容替换为:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
hbase伪分布模式的启动顺序应遵循:启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop
- 启动hadoop
- 启动hbase
输入 jps 命令后,新增了HMaster,HRegionServer,HQuorumPeer,则说明配置成功
2)
第2题 HBase Shell数据库表创建
【实验内容】 根据以下关系型数据库表,使用HBase Shell设计并创建适宜的HBase数据表。
表1. 学生表(Student)学号(S_ID) 姓名(S_Name) 性别(S_Sex) 年龄(S_Age)表2. 课程表(Course) 课程号(C_ID) 课程名(C_Name) 学分(C_Credit)
表3. 选课表(Selected_Course) 学号(SC_ID) 课程号(C_ID) 成绩(SC_Score)
【实验结果】(步骤、记录、数据、程序等)
请提供相应证明。
回答:
1.启动hbase,进入shell界面
创建学生表
用describe命令查看表的基本信息
describe 'Student'
第3题 HBase Shell数据访问操作
【实验内容】 使用HBaseShell命令向第2题所构建的学生表(Student)、课程表(Course)和选课表(Selected_Course)中添加适宜数据,其中每个表至少添加3条记录。
【实验结果】(步骤、记录、数据、程序等)
请提供相应证明。
回答:
添加数据用put命令
help "put" #查看put的添加格式
‘t1’ 表示需添加数据的表,’r1’ 表示添加的行,’c1’ 表示添加的列,’value’ 表示值
第4题 HBASE数据访问程序设计实验
【实验内容】
(1) 使用HBase Shell命令或JAVA程序从第3题所构建的学生表中查询(scan)出所有数据;
(2) 使用HBase Shell命令或JAVA程序从第3题所构建的课程表中查询(get)任意一条数据;
(3) 使用HBaseShell命令或JAVA程序将第3题所构建的选课表(Selected_Course)删除。
【实验结果】(步骤、记录、数据、程序等)
请提供相应Shell界面或JAVA程序截图证明。
回答:
删除表分两步
删除某个数据用delete
删除一行数据用deleteall
查询当前有多少表
退出shell界面
关闭hbase
关闭hadoop