当前位置: 首页 > news >正文

二、Hive安装部署详细过程

Apache Hive 是一个构建在 Hadoop 之上数据仓库基础设施。它提供类似 SQL 的查询语言 (称为 HiveQL 或 HQL),让熟悉 SQL开发人员和分析师能够轻松地查询和分析存储在 HDFS其他兼容存储系统中的大规模数据集。把结构化或半结构化的数据映射,然后用 HQL 操作,是不是很酷?😎

这篇笔记将指导你完成 Hive基本安装和配置过程,并展示如何通过 DataGrip 连接到 Hive。

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

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

二、下载并解压 Hive 安装包 📦

  1. 访问 Apache Hive 官网:前往 Apache Hive 的官方网站 (hive.apache.org) 的下载页面
    在这里插入图片描述

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

    • 假设你已经将安装包上传到 /export/softwares 目录下,例如 apache-hive-3.1.2-bin.tar.gz
  3. 解压安装包到指定目录:将安装包解压/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
<font color="brown">现在,你的 Hive 安装路径就是 `/export/server/hive`。</font>

三、配置 Hive 环境变量 🌍

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

四、配置 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>
<!-- 存储元数据mysql相关配置 -->
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop01:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false&amp;serverTimezone=UTC&amp;allowPublicKeyRetrieval=true</value>
</property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value>
</property><!-- MySQL账号 -->   
<property><name>javax.jdo.option.ConnectionUserName</name><value>root</value>
</property><!-- MySQL密码 -->
<property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value>
</property><!-- H2S运行绑定host -->
<property><name>hive.server2.thrift.bind.host</name><value>hadoop01</value>
</property><!-- 远程模式部署metastore metastore地址 -->
<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 -verbos

如果看到 “Schema initialization [SUCCESS]”,则初始化成功。🎉
在这里插入图片描述
创建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

拷贝到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 &
nohup $HIVE_HOME/bin/hiveserver2 > $HIVE_HOME/logs/hiveserver2.log 2>&1 &

请确保 HiveServer2 服务已成功启动并正在运行。

  1. (可选)启动 Hive CLI (用于直接命令行操作)
    • 启动命令:
hive

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

hive> SHOW DATABASES;

八、在 DataGrip 中连接 Hive 🐘+🐬=❤️

DataGrip 是一款强大数据库 IDE

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

在这里插入图片描述

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

在这里插入图片描述

  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 工具进行可视化操作和查询。大数据分析之旅,现在才刚刚开始!

相关文章:

  • 深度学习中的目标检测:从 PR 曲线到 AP
  • 各种音频产品及场景总结
  • 【生存技能】ubuntu 24.04 如何pip install
  • 好用的播放器推荐
  • MySQL索引详解(上)(结构/分类/语法篇)
  • expo多网络请求设定。
  • Pycharm(二十)张量的运算与操作
  • 泛型加持的策略模式:打造高扩展的通用策略工具类
  • 流动式起重机Q2考试的实操部分,重点复习内容包括哪些方面?
  • 嵌入式学习--江协51单片机day4
  • 【Linux系统】从零开始构建简易 Shell:从输入处理到命令执行的深度剖析
  • C 语言数据结构基石:一维数组的定义、访问与使用详解
  • 【基于 LangChain 的异步天气查询1】异步调用 Open-Meteo API 查询该城市当前气温
  • 如何借助AI模拟复杂业务流程数据?
  • FreeTex v0.2.0:功能升级/支持Mac
  • 数字签名与证书
  • Java并发编程,从线程安全到死锁避免的实战解析
  • Ubuntu 安装 HAProxy
  • 基于ESP32控制的机器人摄像头车
  • spark-Join Key 的基数/rand函数
  • 王毅同巴基斯坦副总理兼外长达尔通电话
  • “80后”赵亮出任上海普陀区委副书记
  • 看展览|2025影像上海艺博会:市场与当代媒介中的摄影
  • 康子兴评《文明的追求》|野人脚印:鲁滨逊的恐惧与文明焦虑
  • 新买宝马竟是“维修车”,男子发视频维权被4S店索赔100万
  • 从上海首个到成片复制,闵行零工市场如何优化劳动就业服务?