一、引言
Hive元數(shù)據(jù)存儲(chǔ)可以放到RDBMS數(shù)據(jù)庫(kù)中,本文以Hive與MySQL數(shù)據(jù)庫(kù)的整合為目標(biāo),詳細(xì)說(shuō)明Hive與MySQL的整合方法。
二、安裝驅(qū)動(dòng)
MySQL最新的Java驅(qū)動(dòng)版本為:mysql-connector-java-5.1.28-bin.jar,下載后拷貝到:Hive/Lib目錄。
三、安裝MySQL
3.1 版本
RHEL5+mysql-5.5.35-1.i386.rpm
3.2 順序
MySQL-shared-compat-5.5.35-1.rhel15.i386.rpm
MySQL-server-5.5.35-1.rhel5.i386.rpm
MySQL-client-5.5.35-1.rhel5.i386.rpm
四、配置文件
修改Hive配置文件Hive-site.xml,修改后的結(jié)果如下所示:
1 <property> 2 <name>javax.jdo.option.ConnectionURL</name> 3 <value>jdbc:mysql://localhost:3306/hivedb?characterEncoding=UTF-8</value> 4 <description>JDBC connect string for a JDBC metastore</description> 5 </property> 6 7 <property> 8 <name>javax.jdo.option.ConnectionDriverName</name> 9 <value>com.mysql.jdbc.Driver</value>10 <description>Driver class name for a JDBC metastore</description>11 </property>12 13 <property>14 <name>javax.jdo.PersistenceManagerFactoryClass</name>15 <value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>16 <description>class implementing the jdo persistence</description>17 </property>18 19 <property>20 <name>javax.jdo.option.DetachAllOnCommit</name>21 <value>true</value>22 <description>detaches all objects from session so that they can be used after transaction is committed</description>23 </property>24 25 <property>26 <name>javax.jdo.option.NonTransactionalRead</name>27 <value>true</value>28 <description>reads outside of transactions</description>29 </property>30 31 <property>32 <name>javax.jdo.option.ConnectionUserName</name>33 <value>root</value>34 <description>username to use against metastore database</description>35 </property>36 37 <property>38 <name>javax.jdo.option.ConnectionPassword</name>39 <value>root</value>40 <description>password to use against metastore database</description>41 </property>
五、結(jié)果展示
安裝完成以后,通過(guò)訪問(wèn)mysql客戶端,可以用來(lái)驗(yàn)證是否安裝成功。注意與普通關(guān)系型數(shù)據(jù)創(chuàng)建表格后的區(qū)別。
mysql>show tables;
1 +----------------+ 2 | Tables_in_hive | 3 +----------------+ 4 | BUCKETING_COLS | 5 | COLUMNS | 6 | DBS | 7 | PARTITION_KEYS | 8 | SDS | 9 | SD_PARAMS |10 | SEQUENCE_TABLE |11 | SERDES |12 | SERDE_PARAMS |13 | SORT_COLS |14 | TABLE_PARAMS |15 | TBLS |16 +----------------+
六、注意事項(xiàng)
曾經(jīng)有人單獨(dú)找我咨詢過(guò)這個(gè)問(wèn)題:為何無(wú)法在Hive中指定使用哪個(gè)MySQL數(shù)據(jù)庫(kù)?這里面有一個(gè)需要說(shuō)明的地方是Hive的數(shù)據(jù)庫(kù)的概念不同于RDBMS數(shù)據(jù)庫(kù),MySQL數(shù)據(jù)庫(kù)的指定是基于配置文件的,但是Hive的數(shù)據(jù)庫(kù)只是一個(gè)命名空間號(hào),類似分組的概念。hive中的數(shù)據(jù)庫(kù)可以在使用MySQL數(shù)據(jù)庫(kù)中,通過(guò)Select * from DBS查看到。
聯(lián)系客服