二、Hive安装部署详细过程

简介: 手把手教你完成 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/
      
  3. 重命名目录为 hive
    * 示例重命名命令:
    bash cd /export/server/ mv apache-hive-3.1.2-bin hive
    现在,你的 Hive 安装路径就是 /export/server/hive

三、配置 Hive 环境变量

  1. 编辑配置文件
    • 示例编辑命令 (当前用户):
      vim /etc/profile
      
  2. 添加以下内容 :
    # HIVE_HOME
    export HIVE_HOME=/export/server/hive
    export PATH=$PATH:$HIVE_HOME/bin
    export PATH=$PATH:/export/server/hive/bin
    
  3. 使配置生效
    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
      
  2. hive-site.xml

    • 创建 hive-site.xml:
      vim hive-site.xml
      
    • hive-site.xml添加或修改以下核心配置 (以 MySQL 为例):
      注意:以下配置是非常基础的示例。
      ```xml

      javax.jdo.option.ConnectionURL
      jdbc:mysql://hadoop01:3306/hive3?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true
      JDBC connect string for a JDBC metastore. Added allowPublicKeyRetrieval=true for MySQL 8+ compatibility.

    javax.jdo.option.ConnectionDriverName
    com.mysql.cj.jdbc.Driver
    Driver class name for a JDBC metastore. Use com.mysql.cj.jdbc.Driver for MySQL 8+.

    javax.jdo.option.ConnectionUserName
    root

    javax.jdo.option.ConnectionPassword
    123456
    hive.server2.thrift.bind.host
    hadoop01

    hive.metastore.uris
    thrift://hadoop01:9083

    hive.metastore.event.db.notification.api.auth
    false


    ```

五、准备 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 命令:
    bash 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




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

image.png





4. 测试连接 (Test Connection)
点击 Test Connection 按钮。成功则显示 "Succeeded"。✅

6. 保存并连接
点击 确定应用

## *九、常见问题与排错提示
  • 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 工具进行可视化操作和查询。大数据分析之旅,现在才刚刚开始!
目录
相关文章
|
3月前
|
SQL HIVE
十一、Hive JOIN 连接查询
在 Hive 的世界里,JOIN 就像是数据间的红线,把原本分散在各自表里的信息串联起来。无论是内连接、外连接,还是 Hive 特有的左半连接,都各有“武功招式”,适用于不同场景。
190 12
|
SQL 分布式计算 安全
三十六、centos安装hive3.1.2(精讲篇)
三十六、centos安装hive3.1.2(精讲篇)
1456 0
三十六、centos安装hive3.1.2(精讲篇)
|
SQL 分布式计算 HIVE
基于Docker搭建大数据集群(六)Hive搭建
基于Docker搭建大数据集群(六)Hive搭建
|
3月前
|
SQL 存储 Apache
三、Hive DDL数据库操作
Hive 中的数据库(Schema)是构建数据仓库的基础单位。这次我们来了解 Hive 中创建、查看、切换、修改与删除数据库的 DDL 操作语法与用法,涵盖 COMMENT、LOCATION、DBPROPERTIES 等常用参数,辅以丰富示例与练习,助你扎实掌握 Hive 数据库管理核心能力。
174 11
|
3月前
|
存储 数据采集 分布式计算
一、数据仓库基石:核心理论、分层艺术与 ETL/ELT 之辨
数据仓库不是数据库的升级,而是面向决策的大脑。本篇带你快速厘清数据库 vs 数仓、分层架构逻辑、ETL/ELT区别,轻松建立数据思维骨架。
243 5
|
SQL HIVE Python
[Hive]HiveServer2配置
HiveServer2(HS2)是一个服务器接口,能使远程客户端执行Hive查询,并且可以检索结果。HiveServer2是HiveServer1的改进版,HiveServer1已经被废弃。
4966 0
|
SQL 消息中间件 分布式计算
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
1720 0
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
|
6月前
|
分布式计算 Java 关系型数据库
二、Sqoop 详细安装部署教程
在大数据开发实战中,Sqoop 是数据库与 Hadoop 生态之间不可或缺的数据传输工具。这篇文章将以 Sqoop 1.4.7 为例,结合官方站点截图,详细讲解 Sqoop 的下载路径、安装步骤、环境配置,以及常见 JDBC 驱动的准备过程,帮你一步步搭建出能正常运行的 Sqoop 环境,并通过 list-databases 命令验证安装是否成功。如果你正打算学习 Sqoop,或者在搭建大数据平台过程中遇到安装配置问题,本文将是非常实用的参考指南。
542 6
|
3月前
|
数据采集 算法 机器人
具身智能:零基础入门睿尔曼机械臂(五)—— 手眼标定核心原理与数学求解
本文系统讲解手眼标定技术,涵盖Eye-in-Hand与Eye-to-Hand两种架构,深入推导AX=XB方程的数学原理与求解方法,结合实际应用场景和操作步骤,为机器人视觉开发者提供从理论到实践的完整指南。
504 9
|
SQL Java 关系型数据库
Hive常见的报错信息
文章列举了Hive常见的几种报错信息,并提供了错误复现、原因分析以及相应的解决方案。
1946 1

热门文章

最新文章