hive+mysql搭建遠程數據倉庫
版本說明
計算機系統: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完成!
推薦閱讀: