版本說明

計算機系統:ubuntu16.04

hive版本:0.12.0

hadoop版本:2.7.3

mysql版本:5.7.19

一.mysql在ubuntu安裝

sudo apt-get update

sudo apt-get install mysql-server mysql-client

在"軟體包設置對話框"中輸入mysql中"root"用戶的密碼-->回車-->再輸一次密碼-->回車,安裝完成。

啟動服務:sudo service mysql start

啟動客戶端:mysql -uroot -p123456

root與root分別是用戶名和密碼

如果如上圖所示成功進入客戶端證明安裝成功!

二.hive本地安裝(前提是hadoop可以正常運行)

1.修改/etc/profile文件,添加hive環境變數

export HIVE_HOME=/usr/local/hive-0.12.0
export PATH=$HIVE_HOME/bin:$PATH
export CLASSPATH=$HIVE_HOME/lib:$CLASSPATH

2.輸入命令hive

3.輸入命令 show databases;

如果輸出如上圖所示則成功安裝安裝hive

三.集成mysql與hive(mysql作為hive 的元數據倉庫)

1.為Hive建立相應的MySQL賬戶,並賦予足夠的許可權,執行命令如下:

hadoop@ubuntu:~$ mysql -uroot -p123456
mysql> CREATE USER hive IDENTIFIED BY 123456;
mysql> GRANT ALL PRIVILEGES ON *.* TO hive@% WITH GRANT OPTION;
mysql> flush privileges;

2.默認情況下Mysql只允許本地登錄,所以需要修改配置文件將地址綁定給注釋掉:

root@ubuntu:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到如下內容:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1 <---注釋掉這一行就可以遠程登錄了

3.重啟mysql服務:

sudo service mysql restart

4.建立 Hive 專用的元資料庫,記得創建時用剛才創建的「hive」賬號登陸。

hadoop@ubuntu:~$ mysql -uhive -p123456
mysql> create database hive;

5.在hive解壓目錄下的conf下面執行

cp hive-default.xml.template hive-site.xml

6.修改hive-site.xml文件

<configuration>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>

<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
</configuration>

注意!把configuration裡面多餘的property去掉,因為裡面有很多默認的東西與現在的配置衝突,比如說後面有一個javax.jdo.option.ConnectionUserName的配置項是value值是APP,但是其配置的對象是derby資料庫,因此會導致hive連不上進而出現錯誤

6.把MySQL的JDBC驅動包複製到Hive的lib目錄下。

JDBC驅動包的版本:mysql-connector-java-5.1.28.jar

7.啟動hive遠程服務

root@master:/usr/local/hive-0.12.0/conf# hive --service metastore

效果如上圖

8.啟動hive客戶端

打開另一個終端輸入命令

root@master:/usr/local/hive-0.12.0/conf# hive

9.輸入命令

show databases;

顯示如下

10.創建一張表

輸入以下語句

create table psn(
id int,
name string,
likes ARRAY <string>,
address MAP <string,string>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ,
COLLECTION ITEMS TERMINATED BY -
MAP KEYS TERMINATED BY :;

效果如下則是創建成功

至此hive集成mysql完成!

推薦閱讀:

相關文章