Hive有三種模式:
- 內嵌Derby方式
- Local方式
- Remote方式
在實際的開發中,我們經常用的是第三種,所以接下來我們就介紹一下Remote方式的Hive如何配置
由於Remote方式和Local方式都是使用的mysql數據庫,所以在安裝Hive之前,我們需要先安裝mysql
-
首先從官網下載安裝文件 http://mirror.bit.edu.cn/apache/hive/
-
然後把文件上傳到Linux中,解壓並重命名爲hive-1.2.1,由於Remote方式中是多用戶操作,所以分爲服務器端的配置和客戶端的配置。
-
我們先來配置服務器端,在hive-1.2.1下的conf目錄,有一個hive-default.xml.template文件,把它重命名爲hive-site.xml
-
接下來在hive-site.xml中配置hive
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name> //此處是指定hive在mysql中的連接的是hive_meta數據庫
<value>jdbc:mysql://localhost/hive_meta?createDatabaseIfNotExist=true</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> //此處是指定hive連接mysql時使用的用戶名
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value> //此處是指定hive連接mysql時使用的密碼
</property>
</configuration>
- 接下來是client端的配置,可以把Server端解壓好的安裝包直接拿過來,也可以重新解壓,同樣在hive-site.xml中添加如下配置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://XXX.XXX.XX.XXX:9083</value> //此處配置的是Server的ip,端口號默認都是9083
</property>
</configuration>
-
到這裏,Hive的配置基本就完成了,需要注意的是,在啓動過程中如果Hadoop安裝目錄下的$HADOOP_HOME/share/hadoop/yarn/lib下的
jline-2.12.jar
的版本和Hive的lib目錄下的jline版本不一致,所以啓動的時候會報錯,這時候需要將Hive中的jline-2.12.jar
拷貝到Hadoop的share/hadoop/yarn/lib目錄下,再次啓動正常。
-
接下來就是正常啓動,由於在配置文件中我們配置了hive連接的數據庫爲hive_meta,用戶爲hive,密碼爲123,所以需要先在mysql數據庫中創建hive_meta表,創建hive用戶並授權hive用戶相關權限
grant all privileges on hive_meta.* to hive@"%" identified by '123';
然後可以在Server端啓動一下hive,直接輸入hive
即可, -
如果Server端可以正常啓動如果Server端可以正常啓動,就可以輸入
hive --service metastore
命令,啓動遠程連接進程。 -
在客戶端直接使用
hive
命令即可連接正常使用。