Hive2.x 版本的安裝及配置

博主學習Hadoop學習到Hive,一開始跟着資料去安裝Hive 1.x一點問題也沒有,方便快捷啊,但是看了一下官方文檔,上面好像說Hive 2.0修復了很多bug,那麼我想,我還是用Hive2.0好了。於是我開始按照原來的流程配置Hive2.0,遇到了各種問題,而且由於版本太新,國內網站上的解決方案基本上沒有用。查閱各種資料,現在終於配置好了。所以寫這篇博文分享,希望減少跟我一樣的新手在使用Hive2.0的時候遇到的阻力。



Hive 1.x與2.x

As of June 2015, Hive has two “main lines”, master and branch-1.
All new feature work and bug fixes in Hive are contributed to the master branch. As of June 2015, releases from master are numbered 2.x. The 2.x versions are not necessarily backwards compatible with 1.x versions.
branch-1 is used to build stable, backward compatible releases. Releases from this branch are numbered 1.x (where 1.3 will be the first release from it, as 1.2 was released from master prior to the creation of branch-1). Until at least June 2016 all critical bug fixes (crashes, wrong results, security issues) applied to master must also be applied to branch-1. The decision to port a feature from master to branch-1 is at the discretion of the contributor and committer. However no features that break backwards compatibility will be accepted on branch-1.

Requirements

Java 1.7
Note: Hive versions 1.2 onward require Java 1.7 or newer. Hive versions 0.14 to 1.1 work with Java 1.6 as well. Users are strongly advised to start moving to Java 1.8 (see HIVE-8607).
Hadoop 2.x (preferred), 1.x (not supported by Hive 2.0.0 onward).
Hive versions up to 0.13 also supported Hadoop 0.20.x, 0.23.x.
Hive is commonly used in production Linux and Windows environment. Mac is a commonly used development environment. The instructions in this document are applicable to Linux and Mac. Using it on Windows would require slightly different steps.



上面只是一些瞭解材料,我就從官方文檔上貼了過來,下面進入正題。

1 下載解壓

第一步當然是和老版本一樣,在官網上下載Hive的最新的穩定版壓縮包,在Linux系統下解壓。如果你只使用這一個版本的Hive,可以把HIVE_HOME和其bin目錄添加到環境變量PATH中去。安裝過Hadoop的朋友對這個應該相當熟悉。像我的話,由於想要Hive 1.x和2.x一起使用,所以我沒有配置環境變量,這樣每次要使用Hive的時候就cd到對應的bin目錄下執行就行了。



2 mysql metastore

Hive的元數據是需要一個關係型數據庫保存的,它內置了一個deby,但是最好用的無疑還是mysql,而且安裝配置也簡單。所以博主建議使用mysql。這一步的詳細過程請參考博主的另一篇博文:http://blog.csdn.net/cds86333774/article/details/51132532

然後Hive要連接mysql啊,這個時候熟悉mysql的朋友就一定會意識到:哦!驅動!

對的,安裝好mysql並配置好了之後,還要將連接mysql的驅動:mysql-connector-java-5.1.28.jar 拷貝到HiveHome 目錄下的lib文件夾中,這樣Hive纔可能成功連接mysql。



3 配置hive-site.xml

在hive的目錄下有一個conf文件夾,裏面全是配置文件。

cp hive-default.xml.template hive-site.xml 

將模板複製並命名爲 hive-site.xml,我們要做的配置就是在這個文件中修改一些參數。這一點也和Hadoop類似。

在這個文件中,查找到如下屬性,然後修改其中的value到與你的主機相符的配置,例如mysql所在的主機? 端口一般都是3306;hive是用來存元數據的數據庫名稱;username和password要與你在上一步設置mysql時的一致:

    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://hadoop00:3306/hive?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
      <description>username to use against metastore database</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>123</value>
      <description>password to use against metastore database</description>
    </property>

注意事項:

如果你在使用mysql之前啓動過Hive,注意使用下面的命令將元數據同步到mysql,不然會報錯:

schematool -dbType mysql -initSchema

這裏寫圖片描述



4 錯誤1

錯誤1:忘記啓動Hadoop集羣了。

這裏寫圖片描述



5 錯誤2

這裏寫圖片描述

這個問題卡得我有點久,因爲在百度上沒有找到解決方案。後來在stackoverflow上找到了完美解答:

這裏寫圖片描述

解決後反思一下,我發現自己有一個問題,就是很不喜歡認真看錯誤信息,其實只要認真看了錯誤信息,然後到hive-site.xml文件去找出特定字段,然後看description,是可以自己找出解決方案的。國內的網站上還沒有出現這個問題的解答,是因爲版本太新。而每當一個全新的問題出現,總有一些大牛可以爲我們這些小白解決問題,而這種解決全新問題的能力也是我所欠缺的。簡單總結爲一句話,對我自己說的:【請認真分析錯誤信息,不要嫌麻煩,不要一遇到問題就百度,不要一看到別人貼出的解決方案,看都不看清楚就直接複製粘貼】。

這裏寫圖片描述



6 成功

這裏寫圖片描述

發佈了66 篇原創文章 · 獲贊 15 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章