CentOS 7 基于 Hadoop 3.x 的 Hive 环境部署指南
1、环境准备
1-1、前置条件
已安装 Hadoop 3.x(伪分布式或完全分布式)
已配置 Java 8/11(JAVA_HOME)
已安装 MySQL/PostgreSQL(存储 Hive 元数据,默认 Derby 仅适合测试)
1-2、系统配置
# 确保 Hadoop 正常运行
jps
# 应包含 NameNode、DataNode、ResourceManager 等
# 创建 Hive 安装目录
sudo mkdir -p /usr/local/hive
sudo chown -R $(whoami):$(whoami) /usr/local/hive
2、安装Hive
2-1、下载并解压 Hive
wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
tar -xzvf apache-hive-3.1.3-bin.tar.gz
mv apache-hive-3.1.3-bin /usr/local/hive
2-2、配置环境变量
echo 'export HIVE_HOME=/usr/local/hive' >> ~/.bashrc
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> ~/.bashrc
source ~/.bashrc
3、配置Hive
3-1、配置 hive-env.sh
cd /usr/local/hive/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
添加一下内容:
export HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib
3-2、配置 hive-site.xml
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
<configuration>
<!-- Hive 元数据存储 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive_metastore?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveuser</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
<!-- HDFS 存储路径 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<!-- 其他优化配置 -->
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/tmp/hive/resources</value>
</property>
</configuration>
4、配置MySQL 作为元数据库
4-1、安装MySQL
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
mysql_secure_installation # 设置 root 密码
Maricadb 与 Mysql 关系
MariaDB 是 MySQL 的“开源增强版”,适合希望规避 Oracle 控制或需要扩展功能的用户。
MySQL 仍是企业级标准选择,尤其依赖 Oracle 生态时。
两者在大多数场景下可互换,但需测试兼容性后再迁移。
版本对应关系:
MySQL 5.7 ≈ MariaDB 10.2~10.3
MySQL 8.0 ≈ MariaDB 10.4+
4-2、创建 Hive 元数据库
mysql -u root -p
执行SQL
CREATE DATABASE hive_metastore;
CREATE USER 'hiveuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hive_metastore.* TO 'hiveuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
4-3、下载MySQL JDBC 驱动
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.49.tar.gz
tar -xzvf mysql-connector-java-5.1.49.tar.gz
cp mysql-connector-java-5.1.49/mysql-connector-java-5.1.49.jar /usr/local/hive/lib/
5、初始化 Hive 元数据库
schematool -dbType mysql -initSchema
6、启动 Hive
6-1、创建 HDFS 目录
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive
6-2、启动 Hive Cli
hive
测试基本操作
SHOW DATABASES;
CREATE TABLE test (id INT, name STRING);
INSERT INTO test VALUES (1, 'hadoop');
SELECT * FROM test;