1.安裝前的準備:
首先需要搭建好hadoop集羣並啓動(需要啓動hdfs和yarn)
mysql啓動正常
2.hive的安裝
方式一(不推薦):內嵌 Derby 版本
1、 上傳安裝包 apache-hive-2.3.2-bin.tar.gz
2、 解壓安裝包 tar -zxvf apache-hive-2.3.2-bin.tar.gz -C /home/hadoop/apps/
3、 進入到 bin 目錄,運行 hive 腳本:[hadoop@hadoop02 bin]$ ./hive
方式二(推薦):外置 MySQL 版本
1、 準備好 MySQL(設置好遠程連接)
2、 上傳安裝包 apache-hive-2.3.3-bin.tar.gz
3、 解壓安裝包 tar -zxvf apache-hive-2.3.3-bin.tar.gz -C ~/apps/
4、 修改配置文件(安裝在哪裏都可以,爲了演示我們mysql安裝在hadoop02,hive我們安裝在hadoop05)
[hadoop@hadoop05 ~]# cd /home/hadoop/apps/apache-hive-2.3.3-bin/conf
[hadoop@hadoop05 conf]# touch hive-site.xml
[hadoop@hadoop05 conf]# vi hive-site.xml
寫入內容如下
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop02:3306/hive_metastore_233?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
<!-- 如果 mysql 和 hive 在同一個服務器節點,那麼請更改 hadoop02 爲 localhost -->
<!-- 如果 mysql 和 hive 在同一個服務器節點,那麼請更改 hadoop02 爲 localhost -->
<!-- 如果 mysql 和 hive 在同一個服務器節點,那麼請更改 hadoop02 爲 localhost -->
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
</configuration>
5.一定要記得加入 MySQL 驅動包(mysql-connector-java-5.1.40-bin.jar)
該 jar 包放置在 hive的根路徑下的 lib 目錄
上傳MySQL 驅動包(mysql-connector-java-5.1.40-bin.jar)
mv mysql-connector-java-5.1.40-bin.jar ~/apps/apache-hive-2.3.3-bin/lib/
6.確保hadoop集羣和mYSQL啓動正常
7.安裝完成,配置環境變量
vi ~/.bashrc
添加以下兩行內容:
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin
export PATH=$PATH:$HIVE_HOME/bin
保存退出。
[hadoop@hadoop02 bin]$ source ~/.bashrc
8.驗證 Hive 安裝
[hadoop@hadoop05 bin]$ hive --help
9.初始化元數據庫
注意:當使用的 hive 是 2.x 之前的版本,不做初始化也是 OK 的,當 hive 第一次啓動的時候會自動進行初始化,只不過會不會生成足夠多的元數據庫中的表。在使用過程中會慢慢生成。但最後進行初始化。如果使用的 2.x 版本的 Hive,那麼就必須手動初始化元數據庫。使用命令:
[hadoop@hadoop05 bin]$ schematool -dbType mysql -initSchema
10.啓動 Hive 客戶端
注意要先啓動mysql:
[hadoop@hadoop02 ~]$ service mysql start
查看mysql啓動進程:
[hadoop@hadoop02 ~]$ ps -ef|grep mysql
hive --service cli
或者 hive
11.測試
先進入http://hadoop03:50070 查看一下
創建一個數據庫:
create database myhive;
執行完命令查看發現多了一個文件夾
點進去之後,發現出現如下圖所示多了一個myhive的數據庫
同時也增加了一條映射記錄在mysql裏面
查看顯示數據庫
show databases;
使用數據庫
use 數據庫名;
創建一張表(以下兩條命令都可以): 95022,鄭明,男,20,MA"
create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by "," lines terminated by "\n";
create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by ",";
發現hdfs的相關路徑文件夾下中多了一張表
同時也增加了一條表的映射記錄
同時也增加了字段的映射
然後把student.txt文件上傳到linux系統中。
裏面的內容是
95002,劉晨,女,19,IS
95017,王風娟,女,18,IS
95018,王一,女,19,IS
95013,馮偉,男,21,CS
95014,王小麗,女,19,CS
95019,邢小麗,女,19,IS
95020,趙錢,男,21,IS
95003,王敏,女,22,MA
95004,張立,男,19,IS
95012,孫花,女,20,CS
95010,孔小濤,男,19,CS
95005,劉剛,男,18,MA
95006,孫慶,男,23,CS
95007,易思玲,女,19,MA
95008,李娜,女,18,CS
95021,週二,男,17,MA
95022,鄭明,男,20,MA
95001,李勇,男,20,CS
95011,包小柏,男,18,MA
95009,夢圓圓,女,18,MA
95015,王君,男,18,MA
然後,往創建好的student表中插入一份數據文件:(注意先使用student表所在的數據庫)
load data local inpath "/home/hadoop/student.txt" into table student;
使用SQL進行查詢
到此hive即爲安裝正常
12.退出hive
hive> quit;
或者hive> exit;