实验十 Hive实验:部署Hive

本文介绍Hive在Hadoop环境中的部署与启动流程,重点讲解内嵌模式部署步骤及Hive的基本使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验指导:

10.1 实验目的

1. 理解Hive存在的原因;

2. 理解Hive的工作原理;

3. 理解Hive的体系架构;

4. 并学会如何进行内嵌模式部署;

5. 启动Hive,然后将元数据存储在HDFS上。

10.2 实验要求

1. 完成Hive的内嵌模式部署;

2. 能够将Hive数据存储在HDFS上;

3. 待Hive环境搭建好后,能够启动并执行一般命令。

10.3 实验原理

Hive是Hadoop 大数据生态圈中的数据仓库,其提供以表格的方式来组织与管理HDFS上的数据、以类SQL的方式来操作表格里的数据,Hive的设计目的是能够以类SQL的方式查询存放在HDFS上的大规模数据集,不必开发专门的MapReduce应用。

Hive本质上相当于一个MapReduce和HDFS的翻译终端,用户提交Hive脚本后,Hive运行时环境会将这些脚本翻译成MapReduce和HDFS操作并向集群提交这些操作。

当用户向Hive提交其编写的HiveQL后,首先,Hive运行时环境会将这些脚本翻译成MapReduce和HDFS操作,紧接着,Hive运行时环境使用Hadoop命令行接口向Hadoop集群提交这些MapReduce和HDFS操作,最后,Hadoop集群逐步执行这些MapReduce和HDFS操作,整个过程可概括如下:

(1)用户编写HiveQL并向Hive运行时环境提交该HiveQL。

(2)Hive运行时环境将该HiveQL翻译成MapReduce和HDFS操作。

(3)Hive运行时环境调用Hadoop命令行接口或程序接口,向Hadoop集群提交翻译后的HiveQL。

(4)Hadoop集群执行HiveQL翻译后的MapReduce-APP或HDFS-APP。

由上述执行过程可知,Hive的核心是其运行时环境,该环境能够将类SQL语句编译成MapReduce。

Hive构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。

因此,Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。

Hive架构与基本组成如图10-1所示:

图10-1 Hive体系结构

10.4 实验步骤

相对于其他组件,Hive部署要复杂得多,按metastore存储位置的不同,其部署模式分为内嵌模式、本地模式和完全远程模式三种。当使用完全模式时,可以提供很多用户同时访问并操作Hive,并且此模式还提供各类接口(BeeLine,CLI,甚至是Pig),这里我们以内嵌模式为例。

由于使用内嵌模式时,其Hive会使用内置的Derby数据库来存储数据库,此时无须考虑数据库部署连接问题,整个部署过程可概括如下。

10.4.1 安装部署

在client机上操作:首先确定存在Hive

[root@client~]# ls /usr/cstor/hive/ 
[root@client~]#

10.4.2 配置HDFS

先为Hive配置Hadoop安装路径。

待解压完成后,进入Hive的配置文件夹conf目录下,接着将Hive的环境变量模板文件复制成环境变量文件。

[root@client~]# cd /usr/cstor/hive/conf
[root@client conf]# cp hive-env.sh.template hive-env.sh
[root@client conf]# vim hive-env.sh

在配置文件中加入以下语句:

HADOOP_HOME=/usr/cstor/hadoop

然后在HDFS里新建Hive的存储目录。

在HDFS中新建/tmp 和 /usr/hive/warehouse 两个文件目录,并对同组用户增加写权限。

[root@client hadoop]# bin/hadoop fs -mkdir /tmp
[root@client hadoop]# bin/hadoop fs -mkdir -p /usr/hive/warehouse
[root@client hadoop]# bin/hadoop fs -chmod g+w /tmp
[root@client hadoop]# bin/hadoop fs -chmod g+w /usr/hive/warehouse

10.4.3 启动Hive

在内嵌模式下,启动Hive指的是启动Hive运行时环境,用户可使用下述命令进入Hive运行时环境。

启动Hive命令行:

[root@client ~]# cd /usr/cstor/hive/
[root@client hive ]# bin/hive

10.5 实验结果

10.5.1 启动结果

使用“bin/hive”命令进入Hive环境验证Hive是否启动成功。如图10-2所示:

[root@client hive ]# bin/hive

图10-2

10.5.2 Hive基本命令

使用 “bin/hive” 命令进入Hive环境后,使用 “show tables”, “show function”后如下图所示则表示配置成功。

hive> show tables ;

如图10-3所示:

图10-3

hive> show functions ;

如图10-4所示:

图10-4

实验操作:

步骤1:配置集群ssh免密

  • 修改集群网络映射文件;
  • 之后配置集群免密,在master上创建rsa密钥对,并将公钥发送到包括master在内的所有机器

步骤2:修改Hive配置

  • 在hive-env.sh文件中加入Hadoop安装路径,之后在HDFS中创建tmp文件以及warehouse文件夹并赋予用户组权限

步骤3:启动Hive

  • 启动Hive并使用HiveQL查看检验

 

### 关于 Hive 安装部署实验报告或指南 以下是关于 Hive 安装部署的一个综合性的说明,涵盖了安装过程中的主要步骤以及可能遇到的问题。 #### 1. 环境准备 在开始安装之前,需要确保基础环境已经准备好。Hive 的运行依赖 Hadoop Java 环境的支持[^4]。 - **Java 配置**: 如果系统提示“`-bash: jps: command not found`”,则表明 JAVA 的环境变量未正确配置。此时需按照标准流程设置 `JAVA_HOME` 并将其加入到系统的 PATH 中。 - **Hadoop 安装**: Hive 是构建在 HDFS 上的数据仓库工具,因此必须先完成 Hadoop 的集群搭建并验证其正常运行。 #### 2. 下载与解压 Hive 下载最新版本的 Apache Hive 压缩包,并将其解压缩至目标目录。例如: ```bash wget https://downloads.apache.org/hive/stable/apache-hive-3.1.2-bin.tar.gz tar -xzvf apache-hive-3.1.2-bin.tar.gz -C /opt/ ``` #### 3. 配置文件调整 编辑 Hive 的核心配置文件 `hive-site.xml` 来指定元数据存储的位置以及其他参数。通常情况下,这些信息会被保存在一个关系型数据库(如 MySQL 或 Derby)中。以下是一个简单的示例配置片段: ```xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> </configuration> ``` #### 4. 初始化 Metastore 数据库 通过执行内置脚本来初始化 Hive 所使用的元数据库结构。假设使用的是 MySQL,则可以通过如下命令实现: ```bash schematool -dbType mysql -initSchema ``` #### 5. 启动服务测试 启动 Hive CLI 进入交互模式进行基本功能验证。也可以利用 `-f` 参数批量执行 SQL 脚本并将结果导出到文件中[^3]: ```bash bin/hive -f /opt/module/datas/hivef.sql > /opt/module/datas/hive_result.txt ``` #### 6. 性能优化选择 针对不同的应用场景可以选择合适的执行引擎。虽然 Tez 成为了当前主流推荐的选择之一,因为它能够带来更优的速度资源利用率;但在某些特定条件下,传统的 MapReduce 可能更加适用[^2]。实际操作过程中应依据具体情况权衡两者之间的差异。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值