我使用的安装文件是 apache-hive-3.1.2-bin.tar.gz ,以下内容均以此版本进行说明。
前置条件
- MySQL数据库
我安装的是 mysql-5.7.28 版本的,安装方法可参考《Linux环境安装MySQL5.7.28》。
[root@tcloud ~]# service mysqld status
SUCCESS! MySQL running (18714)
- Hadoop环境
我安装的是 hadoop-3.1.3 版本的,安装方法可参考《Linux环境安装Hadoop3.1.3》。
[root@tcloud ~]# hdfs version
Hadoop 3.1.3
安装Hive
1. 解压
# 解压安装包并移动到/usr/local/hive下
tar apache-hive-3.1.2-bin.tar.gz
mv ./apache-hive-3.1.2-bin/ /usr/local/hive
2. 配置环境变量
配置环境变量的方法比较多,这里统一将环境变量放在 /etc/profile.d/my_env.sh 内。
# 配置环境变量:
vim /etc/profile.d/my_env.sh
# 添加 HIVE_HOME 和 PATH
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
# 使得配置的环境变量立即生效:
# 首先是要赋权限【只操作一次就行】
chmod +x /etc/profile.d/my_env.sh
source /etc/profile.d/my_env.sh
3. 配置Hive
3.1 hive-env.sh
修改 ${HIVE_HOME}/conf/hive-env.sh 配置 HADOOP_HOME:
# 拷贝 Hive 的环境配置模板 hive-env.sh.template 修改 hive-env.sh 指定 Hadoop 的安装路径
# 【这一步是非必要的,如果你有多个Hadoop环境,配置的HADOOP_HOME并非Hive使用的,这个就要配置】
cp hive-env.sh.template hive-env.sh
vim /usr/local/hive/conf/hive-env.sh
# 添加以下内容
HADOOP_HOME=/usr/local/hadoop-3.1.3
3.2 hive-site.xml
新建 ${HIVE_HOME}/conf/hive-site.xml 文件,配置存放元数据的 MySQL 数据库地址、驱动、用户名和密码等【此时使用的Hadoop的MapReduce计算引擎,想修改成其他计算引擎也是在这个文件里进行配置】。
vim /usr/local/hive/conf/hive-site.xml
文件内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://tcloud:3306/metastore?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>tcloud@2021</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
4. 拷贝数据库驱动
将 MySQL 驱动包拷贝到 Hive 安装目录的 ${HIVE_HOME}/lib/ 目录下。百度网盘 mysql-connector-java-5.1.47.jar 分享:
链接:https://pan.baidu.com/s/1X15dNrH-B-U5oxw-H6sn8A
提取码:ibaj
5. 初始化元数据库
当使用的 hive 是 1.x 版本时,可以不进行初始化操作,Hive 会在第一次启动的时候会自动进行初始化,但不会生成所有的元数据信息表,只会初始化必要的一部分,在之后的使用中用到其余表时会自动创建;当使用的 hive 是 2.x 3.x 版本时,必须手动初始化元数据库。初始化命令:
# schematool 命令在安装目录的 bin 目录下 由于上面已经配置过环境变量 在任意位置执行即可
schematool -dbType mysql -initSchema
# 显示如下信息 说明初始化结束
Initialization script completed
schemaTool completed
6. 启动
【需要先启动 hdfs】由于已经将 Hive 的 bin 目录配置到环境变量,直接使用以下命令启动,成功进入交互式命令行后执行 show databases 命令,无异常则代表搭建成功。
[root@tcloud ~]# hive
## 查看数据库
hive> show databases;
OK
default
Time taken: 0.331 seconds, Fetched: 1 row(s)
在 Mysql 中也能看到 Hive 创建的库和存放元数据信息的表:
至此,hive-3.1.2版本安装成功。