二、Hive安装部署详细过程

举报
IvanCodes 发表于 2025/12/17 22:07:42 2025/12/17
【摘要】 手把手教你完成 Hive 的安装、配置和可视化连接,适合初学者快速搭建自己的大数据分析平台。内容涵盖从环境准备、Metastore配置,到 DataGrip 连接的全流程,并附带实用的排错指南,助你轻松迈出 Hive 入门第一步。

一、准备工作:安装 Hive 的先决条件

正式开始安装 Hive 之前,请确保你的环境已经满足以下基本要求:Java 环境已安装、Hadoop 集群已启动并运行正常、MySQL环境已安装

二、下载并解压 Hive 安装包

  1. 访问 Apache Hive 官网:前往 Apache Hive 的官方网站 hive.apache.org的下载页面

image.png

  1. 选择合适的版本根据你的 Hadoop 版本和需求选择一个稳定的 Hive 版本进行下载 (apache-hive-x.y.z-bin.tar.gz)。

    • 假设你已经将安装包上传到 /export/softwares 目录下,例如 apache-hive-3.1.2-bin.tar.gz
  2. 解压安装包到指定目录:将安装包解压/export/server 目录下。

    • 示例解压命令:
cd /export/softwares  # 首先进入安装包所在目录
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /export/server/
  1. 重命名目录为 hive
    • 示例重命名命令:
cd /export/server/
mv apache-hive-3.1.2-bin hive

现在,你的 Hive 安装路径就是 /export/server/hive

三、配置 Hive 环境变量

  1. 编辑配置文件
    • 示例编辑命令 (当前用户):
vim /etc/profile
  1. 添加以下内容 :
# HIVE_HOME
export HIVE_HOME=/export/server/hive
export PATH=$PATH:$HIVE_HOME/bin
export PATH=$PATH:/export/server/hive/bin
  1. 使配置生效
source /etc/profile

四、配置 Hive 核心文件

Hive 的核心配置$HIVE_HOME/conf (即 /export/server/hive/conf) 目录下。

  1. hive-env.sh
    • 复制模板并编辑:
cd $HIVE_HOME/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
  • hive-env.sh主要配置 (取消注释并修改):
export HADOOP_HOME=/export/server/hadoop
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=/export/server/hive/lib
  1. hive-site.xml
    • 创建 hive-site.xml:
vim hive-site.xml
  • hive-site.xml添加或修改以下核心配置 (以 MySQL 为例):
    注意:以下配置是非常基础的示例。
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop01:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false&amp;allowPublicKeyRetrieval=true</value>
        <description>JDBC connect string for a JDBC metastore. Added allowPublicKeyRetrieval=true for MySQL 8+ compatibility.</description>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
        <description>Driver class name for a JDBC metastore. Use com.mysql.cj.jdbc.Driver for MySQL 8+.</description>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value> </property>

    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop01</value>
    </property>

    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop01:9083</value>
    </property>

    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>

    </configuration>

五、准备 Metastore 数据库 (以 MySQL 为例)

  1. 安装 MySQL
    详细安装教程参考《CentOS 7 yum 安装 MySQL 并实现任意主机远程连接》
  2. 准备 MySQL JDBC 驱动
    • 下载 MySQL JDBC 驱动 JAR 文件。
wget https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.4.0/mysql-connector-j-8.4.0.jar -O /tmp/mysql-connector-j-8.4.0.jar
  • 将 JAR 文件复制$HIVE_HOME/lib/ (即 /export/server/hive/lib/) 目录下。
    示例复制命令:
cp /tmp/mysql-connector-j-8.4.0.jar /export/server/hive/lib/

六、初始化 Hive Metastore Schema (首次安装时执行)

  • 执行 schema 初始化命令:
$HIVE_HOME/bin/schematool -dbType mysql -initSchema -verbose

如果看到 “Schema initialization [SUCCESS]”,则初始化成功
image.png

创建Hive存储文件的目录

hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
mkdir -p /export/server/hive/logs

拷贝到hadoop02,hadoop03下面

cd /export/server/
scp -r hive hadoop02:$PWD
scp -r hive hadoop03:$PWD

七、启动 Hive 服务和客户端 CLI

  1. 启动 HiveServer2 (重要!DataGrip 连接需要)
    • 后台启动 HiveServer2 命令:
nohup /export/server/hive/bin/hive --service metastore > /export/server/hive/logs/metastore.log 2>&1 &
nohup /export/server/hive/bin/hive --service hiveserver2 > /export/server/hive/logs/hiveserver2.log 2>&1 &

请确保 HiveServer2 服务已成功启动并正在运行,可以尝试使用一下命令来进行检查。

# 1. 检查后台任务列表 (看是否有对应的 nohup 任务在运行)
jobs -l
# 2. 检查 Java 进程 (看是否有 Metastore 和 HiveServer2 对应的 Java 进程)
jps
# 3. 检查网络端口监听 (看 9083 和 10000 端口是否被监听)
netstat -naltp | grep 9083
netstat -naltp | grep 10000
  1. (可选)启动 Hive CLI (用于直接命令行操作)
    • 启动命令:
hive

示例 HQL 命令 (查看数据库):

hive> SHOW DATABASES;

八、在 DataGrip 中连接 Hive

DataGrip 是一款强大数据库 IDE

  1. 打开 DataGrip
  2. 新建数据源 (Data Source)+ -> Data Source -> Apache Hive

image.png

  1. 配置连接参数
    • 名称: 自定义连接名 (例如 MyHiveCluster)。
    • 主机: HiveServer2 主机名或 IP
    • 端口: HiveServer2 端口号 (默认 10000)。
    • 用户: 连接用户名 (若无特定认证,可留空或填 Hadoop 用户)。
    • 密码: 对应密码

image.png

  1. 测试连接 (Test Connection)

    • 点击 Test Connection 按钮。成功则显示 “Succeeded”。✅
  2. 保存并连接

    • 点击 确定应用

九、常见问题与排错提示

  • DataGrip 连接 HiveServer2 超时或拒绝连接:检查 HiveServer2 服务状态、主机/端口配置、防火墙。
  • JDBC 驱动问题:确保 DataGrip 加载了正确且完整的 Hive JDBC 驱动。
  • 认证问题:若 HiveServer2 配置了认证,DataGrip 连接需相应调整。
  • MySQL JDBC 驱动问题:强调 hive-site.xml 中 javax.jdo.option.ConnectionDriverName (MySQL 8.x 用 com.mysql.cj.jdbc.Driver) 与 $HIVE_HOME/lib/ 下的 ==JDBC JAR 版本必须匹配==,且旧版驱动要移除。
  • MySQL 连接参数:如 serverTimezone, allowPublicKeyRetrieval 对 MySQL 8.x 的重要性。
    Hadoop htrace-core*.jar 丢失问题:指出 Hadoop 的 common/lib 目录可能缺少此文件,以及如何从 Maven 或 Hadoop 安装包恢复。
  • Guava 版本冲突:解释 Hive 自带 Guava 与 Hadoop Guava 的版本差异,以及如何通过重命名 Hive 的 Guava JAR 来解决。
  • Hive lib 目录完整性:强调如果 Hive 缺少核心类(如 ParseException),可能需要从原始安装包恢复整个 lib 目录。
  • 服务启动日志检查:指导用户如何查看 nohup.out$HIVE_HOME/logs/ 下的日志文件来定位服务启动失败的原因。
  • getcwd 错误:提示用户不要在已被删除的目录中执行命令。
  • HDFS 权限和目录:确保 Hive 在 HDFS 上的工作目录存在且权限正确。

恭喜你!你不仅搭建了 Hive 数据仓库,还能通过强大的 DataGrip 工具进行可视化操作和查询。大数据分析之旅,现在才刚刚开始!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。