由於hive是Hadoop的一個組件,做爲數據廠庫,hive的數據是存儲在Hadoop的文件系統中的,hive爲Hadoop提供SQL語句,是Hadoop能夠經過SQL語句操做文件系統中的數據。hive是依賴Hadoop而存在的。
所以hive的安裝詳解,請參考博客:http://blog.csdn.net/qq_38799155/article/details/77605615css
在hadfs上建立目錄並修改權限java
hadoop fs -mkdir /tmp
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -chmod 777 /tmp
hadoop fs -chmod 777 /user/hive/warehouse
最重要的是對hive/conf/
中的hive-site.xml
文件進行配置 ,配置以下:mysql
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--指定存放元數據的數據庫名hive(mysql數據庫),這裏mysql數據庫hive存放在192.168.150.1-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.150.1:3306/hive_metadata?createDatabaseIfNotExsit=true&characterEncoding=UTF-8</value>
</property>
<!--指定DB鏈接用戶名爲root: -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--指定DB鏈接密碼爲mysql: -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>
</property>
<!--指定DB鏈接引擎:-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!---->
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<!---->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
這裏須要注意有幾個問題,很重要!!!
1. 遠程訪問mysql用在xml裏配置上述代碼就夠了,其餘教程裏一直添加其餘變量,實際上並不須要
2. jdbc:mysql://192.168.150.1:3306/hive? 這裏必須是hive,我以前設置成其餘數據庫名字,發現執行時候一直報錯。
3. 爲了鏈接mysql須要在hive的lib中添加mysql connection的jar包
4. 同時啓動時候可能會出現問題須要將/home/hadoop-2.7.3/share/hadoop/yarn/目錄下的jline jar包刪除sql
而後能夠直接啓動hive了;
啓動hive後能夠看到遠程mysql下多了個hive數據庫
而後建立table譬如create table test(id int);
能夠看到在hive的tbls表格TBL_Name下回多一個test表格
同時hdfs的/user/hive/warehouse下也會多一個test表格數據庫
筆者推薦博客:
http://blog.csdn.net/zhihaoma/article/details/48578589markdown