1. 程式人生 > >Hadoop 之 Hive 安裝與配置

Hadoop 之 Hive 安裝與配置

file 接下來 重新 軟件 driver name arc /etc ted

Hive 作為基於Hadoop的一個數據倉庫工具,可將sql語句轉換為MapReduce任務進行運行。 通過類SQL語句快速實現簡單的MapReduce統計,不用開發專門的MapReduce應用

適合數據倉庫的統計分析。基本上Hadoop應用時,都有Hive的影子,下面說下基本Hadoop如何安裝配置Hive

一、準備工作

安裝Hive之前,需要有環境與相應軟件的支持,首先需要安裝好Hadoop

(參考上篇博文),接下來我們需要安裝Mysql 數據庫,為什麽要裝Mysql,

Hive有幾種模式,內嵌模式是將將元數據保存在本地內嵌的 Derby 數據庫中,這種方式缺點是內嵌的 Derby 數據庫每次只能訪問一個數據文件,即不支持多會話連接。所以一般

我們采用將元數據保存在Mysql數據庫中,可以放在本地hive server上或遠程某一臺server上,這裏我們在本地創建Mysql數據庫

Mysql一般在linux系統中默認自帶,我們只需安裝啟動相應服務就可以,當然也可以自己下載相應的安裝包,這裏我們用centos自帶的mysql版本,

啟動服務

技術分享圖片

mysql默認密碼是空即沒有密碼,可自己修改

1、可以用以下命令給root用戶設置密碼:
mysql_secure_installation

技術分享圖片

2、根據提示先輸入原來的密碼,直接回車,輸入2次新密碼,就設置成功了。
註意,在設置過程中,會提示刪除是否anonymous用戶,是否拒絕root的遠程訪問,是否刪除測試用的數據庫,是否重新使設置生效,根據實際情況選擇y 或 n即可,

技術分享圖片

改完後重啟mysql: /etc/init.d/mysqld restart

二、下載安裝Hive

1、 下載hive安裝包

http://archive.apache.org/dist/hive/hive-2.1.1/ apache-hive-2.1.1-bin.tar.gz

上傳到服務器,指定目錄

技術分享圖片

2、安裝hive

tar –zxvf apache-hive-2.1.1-bin.tar.gz

技術分享圖片

三、設置配置項

1、更改環境變量

Vi /etc/profile

技術分享圖片

使變量立即生效

source /etc/profile

2、 配置hive-env.sh

Hive目錄下的/conf/hive-env.sh 文件,該文件默認也不存在,同樣是拷貝它的模版來修改:

[hadoop@kencentos01 conf]$ cp hive-env.sh.template hive-env.sh

配置相關變量

export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf 
export JAVA_HOME=/usr/java/jdk1.7.0_80

3、修改 Hive 配置文件

Hive工程的配置文件為 hive-site.xml,默認情況下,該文件並不存在,需要拷貝它的模版來實現,此配置文件非常重要,若有一項配置錯誤,則hive將運行不了

[hadoop@kencentos01 conf]$ cp hive-default.xml.template hive-site.xml

復制模版文件生成hive-site.xml

<property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
      <description>數據存儲目錄,默認位置在 HDFS 上面的 /user/hive/warehouse 路徑下
</description>
</property>
..
<property>
       <name>hive.exec.scratchdir</name>
       <value>/tmp/hive</value>
       <description>數據臨時文件目錄,默認位置為 HDFS 上面的 /tmp/hive 路徑下</description> </property>
   //配置 jdbc
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://192.168.52.128:3306/hive?createDatabaseIfNotExist=true&amp;
characterEncoding=UTF-8&amp;useSSL=false</value>
    <description>
      //Jdbc 方式連接數據庫
    </description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore 指定jdo驅動相關類</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>訪問數據庫的用戶名</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>連接hive數據庫對應用戶的密碼</description>
  </property>

檢查下面目錄是否存在(hadoop系統中),創建如下目錄

[hadoop@kencentos01 bin]$ hdfs dfs -mkdir -p /user/hive/warehouse
[hadoop@kencentos01 bin]$ hdfs dfs -mkdir /tmp/hive
[hadoop@kencentos01 bin]$ hdfs dfs -chmod 777 /user/hive/warehouse
[hadoop@kencentos01 bin]$ hdfs dfs -chmod 777 /tmp/hive

4、配置jdbc驅動包

下載mysql的jdbc驅動包mysql-connector-java-5.1.6-bin.jar

(mysql官網或http://download.csdn.net/download/happy516/1753230)

放入hive的lib目錄下$HIVE_HOME/lib

5、所有${system:Java.io.tmpdir} 改為絕對路徑

如/opt/hive/apache-hive-2.1.1.bin/iotmp (可自己定義)

四、啟動Hive服務

1、啟動hive 服務

[hadoop@kencentos01 bin]$ nohup hive -service metastore &

[hadoop@kencentos01 bin]$ nohup hive --service hiveserver2 &

2、運行hive

可能會遇到如下問題

Error:

Caused by: MetaException(message:Version information not found in metastore…

技術分享圖片

將hive-site.xml中hive.metastore.schema.verification的值true 改為 false

防止架構版本不兼容時的 Metastore 操作。考慮將此設置為“True”,以減少 Metastore 操作期間發生架構損壞的可能性

Error:

MetaException(message:Hive metastore database is not initialized. Please use schematool…

技術分享圖片

改變為自動創建

Datanucleus.schema.autoCreateAll設置為true

Error:

Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D …

這個錯誤說明java.io.tmpdir需要配置,即將hive-site.xml中所有${system:java.io.tmpdir}都改為絕對目錄,如/opt/hive/apache-hive-2.1.1-bin/iotmp

啟動hive

$hive

技術分享圖片

本機裝了幾臺虛機,性能較差 :)

技術分享圖片

Hadoop 之 Hive 安裝與配置