Hive啟動時的棘手問題的處理


      Hive是存在於Hadoop集群之上的數據倉庫,作為大數據處理時的主要工具,對於大數據開發人員的重要性不言而喻。當然要使用Hive倉庫的前提就是對於hive的安裝,hive的安裝是很簡單的過程,主要關注的就是對於hive的元數據的存儲位置的考慮。hive在安裝的時候,它會默認的將自己的元數據是存儲在自身帶的derby數據庫里,這對於一般的用戶的測試使用是相對方便的,但是由於它在使用的時候只滿足一個客戶端對它的訪問,所以在生產模式下,hive的元數據是一般的被保存在傳統的關系型數據庫mysql中。此時對於mysql的連接問題就是hive安裝的主要操作了。

      在hive連接mysql數據庫的時候,通過下面的配置進行連接(針對於初級的聯系者):

<configuration>
   <property>
       <name>javax.jdo.option.ConnectionURL</name>
       <value>jdbc:mysql://192.168.253.4:3306/hive?
                 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>
  </property>
  <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>hive</value>
  </property>
</configuration>

  注意:連接的時候需要將mysql連接驅動mysql-connector-*.jar導入到hive的lib包下面,還有就是UserName和Password都必須是在mysql數據庫中真實存在,且對於mysql數據庫的操作權限都是具有的。

      接着就是對於hive的啟動,啟動hive的時候,只要在命令行輸入hive就可以了。下面就是在啟動的時候可能會遇到的問題(當然如果是人品好的話可能不會遇到滴):

  Caused by: java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://192.168.253.4:3306/hive?createDatabaseIfNotExist=true, username = hive. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

      遇到這樣的問題可能的原因有:

      ⑴.如果hive連接的是遠程的mysql數據庫,除了上面的配置正確以外,此時就應該考慮的原因是:防火牆的問題!!!(說實話我就是在這里被坑的,我是通過我自己電腦上的虛擬機連接的電腦本地的mysql,原來是防火牆就關的,不知道啥時候就電腦自己給開了,所以就忽視了這個問題),只要將自己電腦的防火牆關閉就可以成功的啟動和創建元數據在mysql數據庫中了。

      ⑵.如果hive連接的是本地的mysql數據庫,這時就要考慮你自己在安裝mysql數據庫的時候,是不是創建了一個針對於mysql的用戶組,比如是mysql用戶組,此時的解決辦法就應該是將當前操作hive的用戶加入到mysql用戶組就解決問題。使用:usermod -a -G  mysql  當前用戶 .

 

如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。
如果,您希望更容易地發現我的新博客,不妨點擊一下左下角的【關注我】。
如果,您對我的博客所講述的內容有興趣,請繼續關注我的后續博客,我是【飛翔的小偉】,謝謝!

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM