azure011328

导航

 

大数据技术与应用实验作业

  

一、实验目的

1.了解HBase的安装流程

 

2.了解HBase的工作原理

3.学习HBase Shell基本操作

二、实验过程

1.首先在Linux本地,新建/data/hbase1目录,用于存放所需文件。

切换目录到/data/hbase1下,使用wget命令,下载HBase所需安装包hbase-1.0.0-cdh5.4.5.tar.gz

 

 

2./data/hbase1目录下,HBase的安装包hbase-1.0.0-cdh5.4.5.tar.gz,解压缩到/apps目录下。

再切换到/apps目录下,将/apps/hbase-1.0.0-cdh5.4.5/,重命名为hbase

 

3.添加HBase的环境变量。首先使用vim打开用户环境变量文件。在环境变量文件末尾位置,追加HBasebin目录路径相关配置,并保存退出。

执行source命令,使环境变量生效。

 

此时就可以调用HBasebin目录下的脚本了。先来查看一下HBase的版本信息。

 

4.下面开始配置HBase。切换目录到/apps/hbase/conf目录下,并使用vim编辑hbase-env.sh文件。

 

追加配置内容到hbase-env.sh中,并保存退出。

 

5.下面使用vim打开hbase-site.xml文件在两个<configuration>之间添加如下内容,并保存退出。

 

注意:这里hbase.zookeeper.property.dataDir目录,需要提前创建。

/data/tmp/zookeeper-hbase目录切换所属用户为zhangyu及用户组为zhangyu

 

6.使用vim编辑/apps/hbase/conf/regionservers文件,此文件存储了HBase集群节点的ip地址,目前只有一台节点,所以只需要填写localhost即可。修改文件内容为:

 

7.下面输入jps,查看当前进程,Hadoop进程是否已经启动。

 

若未启动,则切换到/apps/hadoop/sbin目录下,启动Hadoop

 

Hadoop相关进程启动后,进入HBasebin目录下,启动HBase服务。

 

 

8.输入jps,查看HBase相关进程是否存在。

 

为了进一步测试HBase安装,是否正常,进入HBase Shell接口。

 

输入list的命令,查看当前有哪些HTable表。

 

创建一张表tb,表中含有一个列簇mycf

再次输入list,列出HBase中的表

 

 

 

HBase Shell基本操作

  1. 首先,我们切换到/apps/hadoop/sbin目录下,开启hadoop相关进程

 

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

 

  1. 使用JPS查看相关进程

 

  1. 输入hbase shell进入shell环境

 

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

 

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

 

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

 

  1. 使用list命令来查看一下都有哪些表
  2. 我们来创建一张表,表的参数如下:

 

表名为table_name,列族名为f1(语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}

 

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

 

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

 

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

 

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

 

(语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>

 

14.使用get命令来查询一下table_name表,rowkey001中的f1下的col1的值

 

(语法:get <table>,<rowkey>,[<family:column>,....]

 

15.查询表table_namerowkey001中的f1下的所有列值

 

16.使用scan命令扫描全表(语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}

 

也可以限定扫描表的前几行数据,我们扫描前1行数据

 

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

 

(语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}

 

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

 

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

 

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

 

(语法:delete <table>, <rowkey>, <family:column> , <timestamp>,必须指定列名)

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

 

(语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>,可以不指定列名,删除整行数据)

 

20.使用truncate命令,删除table_name表中的所有数据

 

(语法: truncate <table> 其具体过程是:disable table -> drop table -> create table

 

三、实验心得

通过这次在章鱼学院平台的HBase实验,我对分布式数据库的架构和操作有了更深刻的理解。安装过程中遇到的404错误让我意识到细节的重要性,比如文件名的准确性会影响整个部署流程,这培养了我排查问题时更加严谨的态度。在HBase Shell的操作实践中,我不仅熟悉了基本的表管理和数据操作命令,还直观感受到了列式存储与传统关系型数据库的差异,特别是其高效处理海量数据的优势。实验过程中遇到的配置问题和端口冲突让我学会了如何通过日志分析和参数调整来解决问题,这种实践经验让我对HBase的运行机制有了更立体的认识,也增强了我面对复杂系统时的调试能力。这次实验不仅巩固了我的理论知识,更重要的是让我积累了宝贵的实战经验,为后续深入学习大数据技术打下了坚实基础。

posted on 2025-06-11 08:51  淮竹i  阅读(13)  评论(0)    收藏  举报