1. 程式人生 > >Hive2.x 版本的安裝及配置

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 成功

這裡寫圖片描述