hive的部署與安裝教程

編程語言 Hive HBase Hadoop 陸小鳳一笑 2017-05-01

前期準備:首先安裝好hadoop相應的版本,這個之前我已經發過,可惜沒有通過,這個我後續會再發,然後安裝jdk也是必須的,這裡我們選用MySQL作為元數據庫,將mySql和Hive安裝在master服務器上,所以MySQL數據庫我在昨天的文章中已經介紹了,如果需要可以查看,如果需要MySQL源碼安裝我後續也會發。

1. 下載hive安裝文件,然後解壓,命令如下:

tar -zxvf apache-hive-1.2.1-bin.tar.gz

2. 配置環境變量,命令如下:

vim /etc/profile

export HIVE_HOME=/opt/hive-1.2.1

export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile 讓剛剛的配置生效;

3. 接下來進入配置文件/conf文件夾裡面,conf文件裡有4個需要修改的配置文件:hive-default.xml.template是默認模板,hive-env.sh.template是hive-env.sh默認配置,hive-exec-log4j.properties.template是exec默認配置,hive-log4j.properties.template是log默認配置;

4. 接下來也可以不做任何修改hive也能運行,默認的配置元數據是存放在Derby數據庫裡面的,由於改用mysql來存儲我們的元數據,以及修改數據存放位置和日誌存放位置等使得我們必須配置自己的環境,配置如下:

進入conf目錄下,cp hive-default.xml.template hive-site.xml

cp hive-env.sh.template hive-env.sh

cp hive-exec-log4j.properties.template hive-exec-log4j.properties

cp hive-log4j.properties.template hive-log4j.properties

5. 修改 hive-env.sh

vim hive-env.sh

export HADOOP_HOME=/opt/hadoop-2.7.1

export HIVE_CONF_DIR=/opt/hive-1.2.1/conf

6. 修改 hive-log4j.properties

mkdir logs

vim hive-log4j.properties

hive.log.dir=/opt/hive-1.2.1/logs

7. 修改 hive-site.xml

vim hive-site.xml

<configuration>

<property>

<name>hive.metastore.warehouse.dir</name>

<value>/opt/hive-1.2.1/warehouse</value>

</property>

<property>

<name>hive.exec.scratchdir</name>

<value>/opt/hive-1.2.1/scratchdir</value>

</property>

<property>

<name>hive.querylog.location</name>

<value>/opt/hive-1.2.1/logs</value>

</property>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value> jdbc:mysql://master:3306/hivedb?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>root(填自己的用戶名)</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>123456(填自己的密碼)</value>

</property>

<property>

<name>hive.aux.jars.path</name>

<value>file:///opt/hive-1.2.1/lib/hive-hbase-handler-1.2.1.jar,file:///opt/hive-1.2.1/lib/hbase-client-1.0.0.jar,file:///opt/hive-1.2.1/lib/hbase-common-1.0.0.jar,file:///opt/hive-1.2.1/lib/hbase-common-1.0.0-tests.jar,file:///opt/hive-1.2.1/lib/hbase-protocol-1.0.0.jar,file:///opt/hive-1.2.1/lib/hbase-server-1.0.0.jar,file:///opt/hive-1.2.1/lib/htrace-core-3.1.0-incubating.jar,file:///opt/hive-1.2.1/lib/zookeeper-3.4.6.jar,file:///opt/hive-1.2.1/lib/protobuf-java-2.5.0.jar,file:///opt/hive-1.2.1/lib/guava-12.0.1.jar</value> </property></configuration>

hive.metastore.warehouse.dir:指定hive的數據存儲目錄,指定的是HDFS上的位置,默認值:/user/hive/warehouse,為了便於管理,hive-1.2.1文件下創建文件warehouse。

hive.exec.scratchdir:指定hive的臨時數據目錄,默認位置為:/tmp/hive-${user.name}。為了便於管理,hive-1.2.1文件下創建文件scratchdir。

javax.jdo.option.ConnectionURL:指定hive連接的數據庫的數據庫連接字符串

javax.jdo.option.ConnectionDriverName:指定驅動的類入口名稱

hive.aux.jars.path:是與hbase整合的時候需要用到的jar包,必須加上(hbase已經在錢的文章中已經介紹瞭如何安裝)

8. 複製hbase庫到hive下面

cp $HBASE_HOME/lib/hbase-* $HIVE_HOME/lib/

cp $HBASE_HOME/lib/htrace-core-3.1.0-incubating.jar $HIVE_HOME/lib/

cp $HBASE_HOME/lib/zookeeper-3.4.6.jar $HIVE_HOME/lib/

cp $HBASE_HOME/lib/protobuf-java-2.5.0.jar $HIVE_HOME/lib/

cp $HBASE_HOME/lib/guava-12.0.1.jar $HIVE_HOME/lib/

並刪除原HIVE_HOME/lib/下的guava-14.0.1.jar。

9. 默認hive使用Derby數據庫存放元數據,並且也集成了Derby數據庫及連接驅動jar包,但此處我們換成了MySQL作為數據庫,所以還必須得有MySQL的JDBC驅動包。

10.將hive複製到slave1節點和slave2節點上

11.執行hive命令,如果正常輸出表示安裝成功,如果出現java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected這個錯誤表示hive 的 jline-xxx.jar 和hadoop的jline-xxx.jar 版本不一致 把$hive_home/lib下的jline-xxx.jar 複製到$hadoop_home/share/hadoop/yarn/lib下 重啟hive。

相關推薦

推薦中...