我使用的安裝文件是 apache-hive-3.1.2-bin.tar.gz ,以下內容均以此版本進行說明。
以下環境測試安裝成功:
openEuler 22.03 (LTS-SP1)系統
MySQL-8.0.40
1.前置條件
- MySQL數據庫
我安裝的是 mysql-5.7.28 版本的,安裝方法可參考《Linux環境安裝MySQL5.7.28》。
[root@tcloud ~]# service mysqld statusSUCCESS! MySQL running (18714)
- Hadoop環境
我安裝的是 hadoop-3.1.3 版本的,安裝方法可參考《Linux環境安裝Hadoop3.1.3》。
[root@tcloud ~]# hdfs version
Hadoop 3.1.3
2.安裝Hive
2.1 解壓
# 解壓安裝包并移動到/usr/local/hive下
tar apache-hive-3.1.2-bin.tar.gz
mv ./apache-hive-3.1.2-bin/ /usr/local/hive
2.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
2.3 配置Hive
2.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
2.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版本安裝成功。