Hadoop生态圈框架部署 伪集群版(七)- Hive部署

文章目录

  • 前言
  • 一、Hive部署(手动部署)
    • [1. 下载Hive](#1. 下载Hive)
    • [2. 解压Hive安装包](#2. 解压Hive安装包)
      • [2.1 解压](#2.1 解压)
      • [2.2 重命名](#2.2 重命名)
      • [2.3 解决冲突](#2.3 解决冲突)
        • [2.3.1 解决guava冲突](#2.3.1 解决guava冲突)
        • [2.3.2 解决SLF4J冲突](#2.3.2 解决SLF4J冲突)
    • [3. 配置Hive](#3. 配置Hive)
      • [3.1 配置Hive环境变量](#3.1 配置Hive环境变量)
      • [3.2 修改 hive-site.xml 配置文件](#3.2 修改 hive-site.xml 配置文件)
      • [3.3 配置MySQL驱动包](#3.3 配置MySQL驱动包)
    • [4. 初始化MySQL上的存储hive元数据的数据库](#4. 初始化MySQL上的存储hive元数据的数据库)
    • [5. 进入Hive客户端](#5. 进入Hive客户端)
    • [6. 设置远程连接](#6. 设置远程连接)
      • [6.1 启动MetaStore服务](#6.1 启动MetaStore服务)
      • [6.2 启动HiveServer2服务](#6.2 启动HiveServer2服务)
      • [6.3 进入Hive客户端](#6.3 进入Hive客户端)
  • 注意

前言

随着大数据技术的不断发展,数据处理和分析的需求日益增长。Apache Hive作为基于Hadoop的一个数据仓库工具,能够极大地简化对大规模数据集的查询和管理过程。它允许用户使用类似于SQL的HiveQL语言查询数据,这使得那些熟悉关系型数据库管理系统(RDBMS)的开发者可以轻松地转移到大数据平台上来。

本指南旨在为想要在Linux环境中手动部署和配置Apache Hive 3.1.3的读者提供一个详尽的操作步骤集合。我们将从下载安装包开始,一直到成功启动Hive服务,并确保其能够稳定运行。


一、Hive部署(手动部署)

1. 下载Hive

执行如下命令下载hive的安装包apache-hive-3.1.3-bin.tar.gz到/export/software目录。

shell 复制代码
wget https://repo.huaweicloud.com/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz -P /export/software

也可以点击此连接下载到windows,再上传到Linux的/export/software目录。

2. 解压Hive安装包

2.1 解压

将Hive安装包通过解压方式安装至/export/servers目录。

shell 复制代码
tar -zxvf /export/software/apache-hive-3.1.3-bin.tar.gz -C /export/servers/

解压完成如下图所示。

2.2 重命名

执行如下命令将apache-hive-3.1.3-bin重命名为hive-3.1.3。

shell 复制代码
mv /export/servers/apache-hive-3.1.3-bin /export/servers/hive-3.1.3

2.3 解决冲突

2.3.1 解决guava冲突

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

shell 复制代码
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
2.3.2 解决SLF4J冲突

执行如下命令解决slf4j冲突问题。

shell 复制代码
rm -f /export/servers/hive-3.1.3/lib/log4j-slf4j-impl-2.17.1.jar

3. 配置Hive

3.1 配置Hive环境变量

执行如下命令设置Hive环境变量,加载系统环境变量配置文件,并查看环境变量是否配置成功。

shell 复制代码
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
echo $HIVE_HOME

3.2 修改 hive-site.xml 配置文件

使用cat命令把配置内容重定向并写入到 /export/servers/hive-3.1.3/conf/hive-site.xml 文件。

shell 复制代码
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://hadoop: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元数据仓库在HDFS上目录的位置 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
</configuration>
EOF

3.3 配置MySQL驱动包

执行如下命令下载MySQL驱动包到/export/servers/hive-3.1.3/lib目录下。

shell 复制代码
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar -P /export/servers/hive-3.1.3/lib/

4. 初始化MySQL上的存储hive元数据的数据库

执行如下命令初始化MySQL上的存储hive元数据的数据库。

shell 复制代码
schematool -initSchema -dbType mysql

初始化完成如下图所示。

5. 进入Hive客户端

在访问Hive客户端之前,由于Hive完全依赖于Hadoop集群,因此需要先启动Hadoop集群。

shell 复制代码
start-all.sh

执行如下命令在本地进入Hive客户端。

shell 复制代码
hive


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

shell 复制代码
exit;

6. 设置远程连接

6.1 启动MetaStore服务

执行如下命令后台启动MetaStore服务,并指定日志输出位置。

shell 复制代码
mkdir -p /export/servers/hive-3.1.3/logs
nohup hive --service metastore > /export/servers/hive-3.1.3/logs/metastore.log 2>&1 &

6.2 启动HiveServer2服务

执行如下命令后台启动HiveServer2服务,并指定日志输出位置。

shell 复制代码
nohup hive --service hiveserver2 > /export/servers/hive-3.1.3/logs/hiveserver2.log 2>&1 &

可以使用如下命令查看启动后的MetaStore服务进程和HiveServer2服务进程,此时如果要停止对应服务,可以使用kill命令杀死对应进程。

shell 复制代码
ps -ef | grep hive

6.3 进入Hive客户端

执行如下命令远程进入Hive客户端。

shell 复制代码
beeline -u jdbc:hive2://hadoop:10000 -n root
  • 参数 -u:指定HiveServer2服务的JDBC URL。

    • jdbc:hive2://hadoop3:10000 中:
      • hadoop3 是运行HiveServer2服务的服务器主机名。
      • 10000 是HiveServer2服务默认使用的端口号。
  • 参数 -n:指定连接HiveServer2服务时使用的用户名。

    • root 是用户名,该用户必须具有操作HDFS的适当权限。

如果要退出hive客户端,可以使用按快捷键Ctrl+c退出客户端。


注意

每当系统重启后,为了确保Hive能够正常工作,首先需要执行如下命令启动Hadoop伪集群。

shell 复制代码
start-all.sh

如果还需要支持远程连接功能,则必须执行如下命令启动Hive的MetaStore服务和HiveServer2服务。

shell 复制代码
mkdir -p /export/servers/hive-3.1.3/logs
nohup hive --service metastore > /export/servers/hive-3.1.3/logs/metastore.log 2>&1 &
nohup hive --service hiveserver2 > /export/servers/hive-3.1.3/logs/hiveserver2.log 2>&1 &
相关推荐
面向Google编程26 分钟前
Flink源码阅读:JobManager的HA机制
大数据·flink
Tony Bai38 分钟前
【分布式系统】03 复制(上):“权威中心”的秩序 —— 主从架构、一致性与权衡
大数据·数据库·分布式·架构
汽车仪器仪表相关领域3 小时前
全自动化精准检测,赋能高效年检——NHD-6108全自动远、近光检测仪项目实战分享
大数据·人工智能·功能测试·算法·安全·自动化·压力测试
大厂技术总监下海3 小时前
根治LLM胡说八道!用 Elasticsearch 构建 RAG,给你一个“有据可查”的AI
大数据·elasticsearch·开源
石像鬼₧魂石4 小时前
22端口(OpenSSH 4.7p1)渗透测试完整复习流程(含实战排错)
大数据·网络·学习·安全·ubuntu
TDengine (老段)5 小时前
TDengine Python 连接器进阶指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据
数据猿7 小时前
【金猿CIO展】如康集团CIO 赵鋆洲:数智重塑“顶牛”——如康集团如何用大数据烹饪万亿肉食产业的未来
大数据
zxsz_com_cn9 小时前
设备预测性维护的意义 工业设备预测性维护是什么
大数据
samLi062010 小时前
【数据集】中国杰出青年名单数据集(1994-2024年)
大数据
成长之路51410 小时前
【数据集】分地市旅游收入数据集(2000-2024年)
大数据·旅游