1. 程式人生 > >安裝並使用mysql5.7作為hive的metastore

安裝並使用mysql5.7作為hive的metastore

前言

hive的metastore預設是使用derby來作為metastore,但是derby有一個缺點是不能支援多使用者連結,雖然你可以通過切換目錄來支援,但是不同目錄的metastore會不一致,所以這裡使用mysql來作為hive的metastore。

在linux上安裝mysql資料庫

1、下載最新的mysql資料庫,這裡使用的版本是5.7.13,這裡是使用二進位制rpm進行安裝

mysql-community-client-5.7.13-1.el7.x86_64.rpm
mysql-community-common-5.7.13-1.el7.x86_64.rpm
mysql-community-libs-5.7
.13-1.el7.x86_64.rpm mysql-community-server-5.7.13-1.el7.x86_64.rpm mysql-connector-java-5.1.39.tar.gz #jdbc java驅動

2、上傳到linux,並使用rpm命令安裝,若出現庫衝突,先把衝突的庫刪除,例如在rhel7上

rpm -e mariadb-libs-5.5.35-3.el7.x86_64 --nodeps #出現mariadb衝突

接下來安裝mysql

 rpm -ivh mysql-community-*;
 或
 rpm -ivh mysql-community
-common-5.7.13-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.13-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.13-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm

3、檢視是否安裝成功

[root@localhost ~]# rpm -qa | grep mysql
mysql-community-server-5.7.13-1.el7.x86_64
mysql-community-common-5.7
.13-1.el7.x86_64 mysql-community-client-5.7.13-1.el7.x86_64 mysql-community-libs-5.7.13-1.el7.x86_64

4、啟動mysql服務,這裡我的linux環境是rhel-server-7.0-x86_64

[root@localhost ~]# service mysqld start
Redirecting to /bin/systemctl start  mysqld.service

5、初始化mysql的密碼

a.編輯/etc/my.cnf配置檔案,新增skip-grant-tables,取消密碼驗證

vi /etc/my.cnf

b.啟動服務

service mysqld restart ;

c.命令列輸入mysql進入命令列介面,修改密碼

這裡寫圖片描述

update user set authentication_string=PASSWORD('123') where User='root';

d.重新編輯/etc/my.cnf配置檔案,去掉skip-grant-tables,登入需密碼驗證,並重啟服務

這裡寫圖片描述

e.登入進入mysql客戶端

 mysql -uroot -p123;

f.進入客戶端之後,若使用切換資料庫,例如use mysql出現

You must reset your password using ALTER USER statement before executing this statement

那是因為上面修改的密碼相當於在mysql安裝的時候的初始化的密碼變成了我們修改的密碼。所以在登入系統後mysql資料庫要你修改原始密碼

SET PASSWORD = PASSWORD('123'); 

g.退出mysql客戶端,再重新登入,切換資料庫

這裡寫圖片描述

到此在linux上的mysql資料庫安裝成功,在這裡為了允許遠端客戶端可以鏈到mysql資料庫,需要修改下mysql資料庫的登陸許可權

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

配置mysql作為hive的metastore

1、進入到hive的配置檔案目錄

cd /home/cloud/hadoop/apache-hive-0.13.0-bin/conf

2、將hive-default.xml.template複製一份作為hive-site.xml

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

hive預設是使用hive-default.xml.template作為配置檔案,如果你想要自定義配置檔案,需要自定義一個hive-site.xml

3、配置mysql的資料庫連結,使用者和密碼

vi hive-site.xml;

配置資訊如下:

<configuration>

<!-- WARNING!!! This file is provided for documentation purposes ONLY!     -->
<!-- WARNING!!! Any changes you make to this file will be ignored by Hive. -->
<!-- WARNING!!! You must make your changes in hive-site.xml instead.       -->

<!-- config mysql connection -->
<property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://192.168.137.101:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
          <description>JDBC connect string for a JDBC metastore</description>
</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>123</value>
          <description>password to use against metastore database</description>
</property>

</configuration>
          <description>JDBC connect string for a JDBC metastore</description>
</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>123</value>
          <description>password to use against metastore database</description>
</property>

</configuration>

配置該檔案之前,注意要把hive-site.xml一些老的配置刪除,即先把configuration節點中的配置先清空,再配置資料庫連結

4、需要把mysql的驅動放到/home/cloud/hadoop/apache-hive-0.13.0-bin/lib目錄下

5、啟動hive

發現在mysql的資料庫中生成了一個hive的資料,到此說明配置成功

這裡寫圖片描述

而建立的資料庫資訊和表資訊可以分別在hive資料庫中的DBS和TBLS表中檢視

這裡寫程式碼片

這裡寫圖片描述