hive的安裝模式有2種,一種是使用自帶的derby數據庫,另一種是使用mysql作為元數據庫。derby方式一般沒人用,因為它是單用戶模式。這里主要講解mysql方式。
hive僅僅是一個客戶端工具,不存在集群概念,因此安裝的時候無需每台機器安裝,哪個節點需要使用,就安裝在哪個節點上。多個節點安裝的時候mysql的元數據庫一定要相同(即要在同一個mysql同一個庫上),否則各個客戶端獲取的數據不一致
安裝前准備
- 保證 hadoop 正常運行
- 保證 mysql 正常運行
CentOS7 hadoop安裝教程:
CentOS7 mysql 安裝教程:
https://www.cnblogs.com/caoxb/p/9405323.html
hive安裝步驟
1.下載
我這里將hive里安裝到 /usr/local 目錄下
$ cd /usr/local
2.解壓
$ tar -zxvf apache-hive-2.3.5-bin.tar.gz
3.修改配置文件
主要有兩個配置文件要進行修改:hive-default.xml 和 hive-site.xml 。在hive安裝的conf目錄下,沒有這兩個配置文件,只有一個"hive-default.xml.template",所以我們要復制一個"hive-default.xml.template",命名為hive-default.xml,及新建一個文件hive-site.xml。
$ cd apache-hive-2.3.5-bin/conf
$ cp hive-default.xml.template
hive-default.xml
$ vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- ########################### hive的 JDBC連接 ############################ --> <!-- mysql 連接用戶名 --> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>caoxiaobo</value> </property> <!-- mysql 連接密碼 --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>Caoxiaobo0917!</value> </property> <!-- mysql 連接URL 如果hive和mysql在同一服務器上,使用localhost --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/myhive</value> </property> <!-- mysql 連接驅動 --> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> </configuration>
備注:hive-default.xml用於保留默認配置,hive-site.xml用於個性化配置,可覆蓋默認配置
4.添加驅動包
將mysql的驅動包放在hive安裝的lib目錄下
備注:如果不添加驅動包的話,下執行初始化的時候會拋出 Underlying cause: java.lang.ClassNotFoundException : com.mysql.jdbc.Driver 異常。
(1)下載mysql驅動jar包
我這里是在阿里雲maven庫下載的

(2)上傳jar包到hive的安裝的lib目錄下
這里我使用的是gitbash上傳的,也可以使用其它上傳工具
$ scp -r /c/Users/96492/Desktop/mysql-connector-java-5.1.6.jar root@192.168.38.41:/usr/local/apache-hive-2.3.5-bin/lib
5.初始化元數據庫
hive 1.0版本不需要初始化元數據庫。
$ ./schematool -dbType mysql -initSchema
$ ./schematool -dbType mysql -initSchema
....
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL: jdbc:mysql://localhost:3306/myhive
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: caoxiaobo
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed
6.配置hive環境變量
$ vim /etc/profile
末尾添加如下內容:
export HIVE_HOME=/usr/local/apache-hive-2.3.5-bin export PATH=$PATH:$HIVE_HOME/bin
使環境變量生效:
$ source /etc/profile
7.啟動hive
直接使用hive命令就可以啟動。
$ hive
8.測試
hive啟動成功后就會出現 hive> 這個符號,我們就可以開始測試hive了
hive> create database test; # 創建test數據庫 OK Time taken: 0.069 seconds hive> use test; # 進入test數據庫 OK Time taken: 0.068 seconds hive> create table tt(id int); # 創建表 tt OK Time taken: 1.886 seconds hive> show tables; # 查看test庫中所有的表 OK tt Time taken: 0.093 seconds, Fetched: 1 row(s)