Hive配置 遠程鏈接MySQL

由於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&amp;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

相關文章
相關標籤/搜索