文章目录
- 前言
 - 一、Hive部署(手动部署)
 - 下载Hive
 - 1. 上传安装包
 - 2. 解压Hive安装包
 - 2.1 解压
 - 2.2 重命名
 - 2.3 解决guava冲突
 
- 3. 配置Hive
 - 3.1 配置Hive环境变量
 - 3.2 修改 hive-site.xml 配置文件
 - 3.3 配置MySQL驱动包
 - 3.3.1 下在MySQL驱动包
 - 3.3.2 上传MySQL驱动包
 - 3.3.3 配置MySQL驱动包
 
- 4. 初始化MySQL上的存储hive元数据的数据库
 - 5. 进入Hive客户端
 - 6. 设置远程连接
 - 6.1 启动MetaStore服务
 - 6.2 启动HiveServer2服务
 - 6.3 进入Hive客户端
 
- 二、在hadoop2部署一个hive作为客户端
 - 1. 在hadoop2部署hive
 - 2. 配置
 - 2.1 配置Hive环境变量
 - 2.2 修改 hive-site.xml 配置文件
 
- 3. 进入Hive客户端
 
前言
随着大数据技术的快速发展,Hive作为一种数据仓库工具,在处理大规模数据集时展现了其独特的优势。它基于Hadoop分布式文件系统(HDFS)之上提供了一种类似SQL的查询语言——HiveQL,使得熟悉关系型数据库的开发者能够轻松地进行数据查询和分析。此外,Hive还支持数据汇总、即席查询以及数据分析等任务,成为企业级数据处理解决方案中的重要组成部分。
本教程旨在为读者提供一份详尽且易于理解的Hive部署教程。通过按照本文档步骤操作,您可以成功地在单机或多机环境中搭建起Hive环境,并实现与Hadoop集群的良好集成。我们将从下载Hive安装包开始,逐步介绍如何上传、解压、配置Hive环境变量及核心配置文件,直至完成Hive服务的启动和客户端访问。不仅如此,我们还将进一步探讨如何设置远程连接,以便用户可以从其他主机上连接到Hive执行查询任务。
一、Hive部署(手动部署)
下载Hive
点击在官网下载Hive3.1.3安装包:https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
点击在华为镜像站下载Hvie3.1.3安装包:https://repo.huaweicloud.com/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
1. 上传安装包
通过拖移的方式将下载的Hive安装包apache-hive-3.1.3-bin.tar.gz上传至虚拟机hadoop3的/export/software目录。

2. 解压Hive安装包
2.1 解压
在虚拟机hadoop3上传完成后将Hive安装包通过解压方式安装至/export/servers目录。
tar -zxvf /export/software/apache-hive-3.1.3-bin.tar.gz -C /export/servers/
 
解压完成如下图所示。

2.2 重命名
在虚拟机hadoop3执行如下命令将apache-hive-3.1.3-bin重命名为hive-3.1.3。
mv /export/servers/apache-hive-3.1.3-bin /export/servers/hive-3.1.3
 

2.3 解决guava冲突
如下图所示,hadoop中的guava与hive中的guava版本不一致,会产生冲突,需要把hive的guava更换为hadoop的guava高版本。

在虚拟机hadoop3执行如下命令解决guava冲突问题。
rm -f /export/servers/hive-3.1.3/lib/guava-19.0.jar
cp /export/servers/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /export/servers/hive-3.1.3/lib
 

3. 配置Hive
3.1 配置Hive环境变量
在虚拟机hadoop3执行如下命令设置Hive环境变量,并加载系统环境变量配置文件。
echo >> /etc/profile
echo 'export HIVE_HOME=/export/servers/hive-3.1.3' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile
 

3.2 修改 hive-site.xml 配置文件
在虚拟机hadoop3使用cat命令把配置内容重定向并写入到 /export/servers/hive-3.1.3/conf/hive-site.xml 文件。
cat >/export/servers/hive-3.1.3/conf/hive-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 配置JDO(Java Data Objects)选项,指定Hive元数据存储的数据库连接URL。这里使用的是MySQL数据库,并且如果数据库不存在则自动创建。 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
    <!-- 指定用于连接数据库的JDBC驱动类名 -->
    <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>123456</value>
    </property>
    <!-- 指定Hive元数据仓库目录的位置 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive_local/warehouse</value>
    </property>
</configuration>
EOF
 

3.3 配置MySQL驱动包
3.3.1 下在MySQL驱动包
点击下载MySQL驱动jar包:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar
3.3.2 上传MySQL驱动包
通过拖移的方式将下载的MySQL驱动包上传至虚拟机hadoop3的/export/software目录。

3.3.3 配置MySQL驱动包
在虚拟机hadoop3执行如下命令复制MySQL驱动包到/export/servers/hive-3.1.3/lib目录下。
cp /export/software/mysql-connector-java-8.0.30.jar /export/servers/hive-3.1.3/lib/
 

4. 初始化MySQL上的存储hive元数据的数据库
在虚拟机hadoop3执行如下命令初始化MySQL上的存储hive元数据的数据库。
schematool -initSchema -dbType mysql
 

初始化完成如下图所示。

5. 进入Hive客户端
在虚拟机hadoop3执行如下命令在本地进入Hive客户端。
hive
 

退出Hive客户端。可以使用exit;命令或者按快捷键Ctrl+c退出。
exit;
 

6. 设置远程连接
Hive 提供了两种服务以支持用户的远程连接:
-  
MetaStore 服务:MetaStore 服务负责管理 Hive 的元数据,并通过与关系型数据库的连接来存储和检索这些元数据。
 -  
HiveServer2 服务:HiveServer2 服务基于 Thrift 协议实现,提供了通过 JDBC 和 ODBC 连接到 Hive 的功能。它依赖于 MetaStore 服务来获取元数据信息。用户在通过 HiveServer2 服务远程连接到 Hive 之前,需要确保 MetaStore 服务已经启动并运行。
 
6.1 启动MetaStore服务
在虚拟机hadoop3执行如下命令启动MetaStore服务。此时的MetaStore服务是前台启动,退出将会停止MetaStore服务。
hive --service metastore
 

可以按快捷键
Ctrl+c停止MetaStore服务。
由于前台启动会占用页面,执行其他命令时需要复制一个新标签,我们可以在停止MetaStore服务后使用如下命令把MetaStore服务放到后台启动,并指定日志输出位置。
mkdir -p /export/servers/hive-3.1.3/logs
nohup hive --service metastore > /export/servers/hive-3.1.3/logs/metastore.log 2>&1 &
 

可以使用如下命令查看启动后的MetaStore服务进程,此时如果要停止MetaStore服务,需要使用kill命令杀死对应进程。
ps -ef | grep hive
 

6.2 启动HiveServer2服务
复制一个hadoop3标签,在虚拟机hadoop3执行如下命令启动HiveServer2服务。此时的HiveServer2服务是前台启动,退出将会停止HiveServer2服务。启动HiveServer2服务后,用户可以通过HiveServer2服务远程连接Hive。
hive --service hiveserver2
 

可以按快捷键
Ctrl+c停止HiveServer2服务。
由于前台启动会占用页面,执行其他命令时需要复制一个新标签,我们可以在停止HiveServer2服务后使用如下命令把HiveServer2服务放到后台启动,并指定日志输出位置。
nohup hive --service hiveserver2 > /export/servers/hive-3.1.3/logs/hiveserver2.log 2>&1 &
 

可以使用如下命令查看启动后的HiveServer2服务进程,此时如果要停止HiveServer2服务,需要使用kill命令杀死对应进程。
ps -ef | grep hive
 

6.3 进入Hive客户端
复制一个hadoop3标签,在虚拟机hadoop3执行如下命令远程进入Hive客户端。
beeline -u jdbc:hive2://hadoop3:10000 -n root --hiveconf hive.metastore.uris=thrift://hadoop3:9083
 
-  
参数
-u:指定HiveServer2服务的JDBC URL。jdbc:hive2://hadoop3:10000中:hadoop3是运行HiveServer2服务的服务器主机名。10000是HiveServer2服务默认使用的端口号。
 -  
参数
-n:指定连接HiveServer2服务时使用的用户名。root是用户名,该用户必须具有操作HDFS的适当权限。
 

二、在hadoop2部署一个hive作为客户端
1. 在hadoop2部署hive
在虚拟机hadoop3执行如下命令复制hadoop3安装好的hive到虚拟机hadoop2。
scp -r root@hadoop3:/export/servers/hive-3.1.3 root@hadoop2:/export/servers/
 

2. 配置
2.1 配置Hive环境变量
在虚拟机hadoop2执行如下命令设置Hive环境变量,并加载系统环境变量配置文件。
echo >> /etc/profile
echo 'export HIVE_HOME=/export/servers/hive-3.1.3' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile
 

2.2 修改 hive-site.xml 配置文件
在虚拟机hadoop2使用cat命令把配置内容重定向并写入到 /export/servers/hive-3.1.3/conf/hive-site.xml 文件。
cat >/export/servers/hive-3.1.3/conf/hive-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 指定Hive Metastore服务的地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop3:9083</value>
    </property>
</configuration>
EOF
 

3. 进入Hive客户端
在虚拟机hadoop2执行如下命令远程进入部署在hadoop3的Hive。
beeline -u jdbc:hive2://hadoop3:10000 -n root
                







![[代码随想录Day24打卡] 93.复原IP地址 78.子集 90.子集II](https://i-blog.csdnimg.cn/direct/3a0df6c6ff5d44a6a5e1c7987cc7adf7.png)










