适用系统 :CentOS / Ubuntu / 其他主流 Linux 发行版
前提条件 :已安装完整 JDK(非 JRE),并正确设置JAVA_HOME
目标版本 :Apache Hive 4.0.1
安装路径 :/opt/hive
在大数据开发与运维中,Hive 是构建数据仓库的核心组件之一。手动安装 Hive 步骤繁琐、容易出错。本文将分享一个 自动化 Bash 脚本,可一键完成 Hive 的下载、解压、环境变量配置及验证,极大提升部署效率。
📌 脚本功能亮点
- ✅ 自动检测是否为 root 用户(必须)
- ✅ 验证
JAVA_HOME是否指向完整 JDK(包含java和jps) - ✅ 自动从 Apache 官方镜像下载 Hive 4.0.1
- ✅ 避免重复下载和重复解压
- ✅ 智能写入
/etc/profile环境变量(防止重复添加) - ✅ 安装后自动验证
hive --version是否可用
📜 完整安装脚本
将以下内容保存为 install_hive.sh,赋予执行权限后运行:
bash
#!/bin/bash
# 自动安装 Hive 并配置环境变量
set -e
HIVE_VERSION="4.0.1"
HIVE_INSTALL_DIR="/opt/hive"
echo "=== Hive $HIVE_VERSION 自动安装脚本 ==="
# 检查是否为 root 用户
if [ "$EUID" -ne 0 ]; then
echo "❌ 请以 root 用户运行此脚本。"
exit 1
fi
# 检查 JAVA_HOME 是否设置
if [ -z "$JAVA_HOME" ]; then
echo "❌ JAVA_HOME 未设置,请先设置完整 JDK 的 JAVA_HOME"
exit 1
fi
# 检查 bin 目录下是否有 java 和 jps
if [ ! -x "$JAVA_HOME/bin/java" ] || [ ! -x "$JAVA_HOME/bin/jps" ]; then
echo "❌ JAVA_HOME 指向的目录不完整,缺少 java 或 jps,请使用完整 JDK"
exit 1
fi
# 下载 Hive 包(如果不存在)
if [ ! -f "/tmp/apache-hive-$HIVE_VERSION-bin.tar.gz" ]; then
echo ">>> 下载 Hive $HIVE_VERSION..."
wget -q https://downloads.apache.org/hive/hive-$HIVE_VERSION/apache-hive-$HIVE_VERSION-bin.tar.gz -P /tmp
else
echo ">>> 已存在 /tmp/apache-hive-$HIVE_VERSION-bin.tar.gz,跳过下载。"
fi
# 检查是否已安装 Hive
if [ -d "$HIVE_INSTALL_DIR" ] || [ -d "/opt/apache-hive-$HIVE_VERSION-bin" ]; then
echo ">>> 检测到 Hive 目录已存在,跳过解压步骤。"
else
echo ">>> 解压 Hive..."
tar -zxf /tmp/apache-hive-$HIVE_VERSION-bin.tar.gz -C /opt/
mv -f /opt/apache-hive-$HIVE_VERSION-bin $HIVE_INSTALL_DIR
fi
# 写入环境变量(避免重复添加)
if ! grep -q "HIVE_HOME" /etc/profile; then
echo ">>> 写入 /etc/profile 环境变量..."
cat >> /etc/profile <<EOF
# Hive 环境变量
export HIVE_HOME=$HIVE_INSTALL_DIR
export PATH=\$PATH:\$HIVE_HOME/bin
EOF
fi
# 安全加载系统环境变量(不退出脚本)
if [ -f /etc/profile ]; then
source /etc/profile || true
fi
# 测试 Hive 是否可用
echo ">>> 验证 Hive 安装..."
if hive --version &>/dev/null; then
echo "✅ Hive 安装成功!"
hive --version
else
echo "⚠️ Hive 安装完成,但无法运行 hive,请检查日志。"
fi
echo "=== Hive $HIVE_VERSION 安装完成 ==="
▶️ 使用步骤
1. 确保已安装 JDK 并设置 JAVA_HOME
bash
# 示例(根据你的 JDK 路径调整)
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
⚠️ 注意:必须使用 JDK (含
jps工具),仅 JRE 会导致脚本失败。
2. 保存脚本并赋权
bash
sudo vim install_hive.sh
# 粘贴上述脚本内容
chmod +x install_hive.sh
3. 以 root 身份运行
bash
sudo ./install_hive.sh
4. 验证安装结果
bash
source /etc/profile # 若当前 shell 未生效
hive --version
预期输出类似:
Hive 4.0.1
...
🔒 安全与健壮性设计说明
| 功能 | 实现方式 |
|---|---|
| 防止重复添加环境变量 | 使用 grep -q "HIVE_HOME" 检查 /etc/profile |
| 避免重复下载 | 检查 /tmp/ 下是否存在 .tar.gz 文件 |
| 避免重复解压 | 检查 /opt/hive 或原始解压目录是否存在 |
| 错误立即退出 | set -e 确保任何命令失败即终止 |
| 兼容性处理 | `source /etc/profile |
❓常见问题解答
Q1:为什么必须用 root?
A:脚本需写入 /etc/profile 并操作 /opt/ 目录,普通用户无权限。
Q2:能否自定义安装路径?
A:可以!修改脚本中的 HIVE_INSTALL_DIR 变量即可。
Q3:Hive 4.0.1 需要什么依赖?
A:除 JDK 外,还需 Hadoop(Hive 依赖 HDFS 和 YARN)。本脚本仅安装 Hive CLI,不包含元数据库配置 (如 MySQL)或 Hadoop 集成,后续需手动配置 hive-site.xml。
✅ 总结
该脚本适用于快速搭建 Hive 开发测试环境,尤其适合 CI/CD、容器初始化或批量部署场景。虽然 Hive 的完整生产部署还需配置 Metastore、连接 Hadoop 等,但基础环境的一键化是高效运维的第一步。
💡 建议:在生产环境中,建议结合 Ansible、SaltStack 或 Docker 进行更标准化的部署。