1. 程式人生 > >Hive安裝部署

Hive安裝部署

相關知識

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。

Hive構建在基於靜態批處理的Hadoop之上,由於Hadoop通常都有較高的延遲並且在作業提交和排程的時候需要大量的開銷。因此,Hive並不適合那些需要低延遲的應用,它最適合應用在基於大量不可變資料的批處理作業,例如,網路日誌分析。

Hive的特點是:可伸縮(在Hadoop叢集上動態的新增裝置)、可擴充套件、容錯、輸出格式的鬆散耦合。

Hive將元資料儲存在關係型資料庫(RDBMS)中,比如MySQL、Derby中。

Hive有三種模式連線到資料,其方式是:單使用者模式,多使用者模式和遠端服務模式。(也就是內嵌模式、本地模式、遠端模式)。

 

系統環境

Linux Ubuntu 14.04

jdk-7u75-linux-x64

hadoop-2.6.0-cdh5.4.5

mysql-5.5.53

mysql-connector-java-5.1.26-bin.jar

任務步驟

1.首先在Linux本地,新建/data/hive1目錄,用於存放所需檔案。

mkdir -p /data/hive1  

切換目錄到/data/hive1下,使用wget命令,下載hive所需安裝包hive-1.1.0-cdh5.4.5.tar.gz以及mysql-connector-java-5.1.26-bin.jar。

cd /data/hive1 
wget '路徑hive-1.1.0-cdh5.4.5.tar.gz'  
wget '路徑mysql-connector-java-5.1.26-bin.jar  

2.將/data/hive1目錄下的hive-1.1.0-cdh5.4.5.tar.gz,解壓縮到/apps目錄下。

tar -xzvf hive-1.1.0-cdh5.4.5.tar.gz -C /apps/

再切換到/apps目錄下,將/apps/hive-1.1.0-cdh5.4.5,重新命名為hive。

cd /apps  
mv /apps/hive-1.1.0-cdh5.4.5/ /apps/hive  

3.使用vim開啟使用者環境變數。

sudo vim ~/.bashrc  

 

將Hive的bin目錄,新增到使用者環境變數PATH中,然後儲存退出。

#hive config  
export HIVE_HOME=/apps/hive  
export PATH=$HIVE_HOME/bin:$PATH 

 

執行source命令,使Hive環境變數生效。

source ~/.bashrc  

 

4.由於Hive需要將元資料,儲存到Mysql中。所以需要拷貝/data/hive1目錄下的mysql-connector-java-5.1.26-bin.jar到hive的lib目錄下。

cp /data/hive1/mysql-connector-java-5.1.26-bin.jar /apps/hive/lib/  

 

5.下面配置Hive,切換到/apps/hive/conf目錄下,並建立Hive的配置檔案hive-site.xml。

cd /apps/hive/conf  
touch hive-site.xml  

 

使用vim開啟hive-site.xml檔案。

vim hive-site.xml 

 

並將下列配置項,新增到hive-site.xml檔案中。

<configuration>  
    <property>  
        <name>javax.jdo.option.ConnectionURL</name>  
        <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExsit=true;characterEncoding=latin1</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>strongs</value>  
    </property>  
</configuration>  

 

由於Hive的元資料會儲存在Mysql資料庫中,所以需要在Hive的配置檔案中,指定mysql的相關資訊。

javax.jdo.option.ConnectionURL:資料庫連結字串。

javax.jdo.option.ConnectionDriverName:連線資料庫的驅動包。

javax.jdo.option.ConnectionUserName:資料庫使用者名稱。

javax.jdo.option.ConnectionPassword:連線資料庫的密碼。

此處的資料庫的使用者名稱及密碼,需要設定為自身系統的資料庫使用者名稱及密碼。

6.另外,還需要告訴Hive,Hadoop的環境配置。所以我們需要修改hive-env.sh檔案。

首先我們將hive-env.sh.template重新命名為hive-env.sh。

mv /apps/hive/conf/hive-env.sh.template  /apps/hive/conf/hive-env.sh  

 

使用vim開啟hive-env.sh檔案。

vim hive-env.sh  

 

追加Hadoop的路徑,以及Hive配置檔案的路徑到檔案中。

# Set HADOOP_HOME to point to a specific hadoop install directory  
# HADOOP_HOME=${bin}/../../hadoop  
HADOOP_HOME=/apps/hadoop  
# Hive Configuration Directory can be controlled by:  
# export HIVE_CONF_DIR=  
export HIVE_CONF_DIR=/apps/hive/conf  

 

7.下一步是配置Mysql,用於儲存Hive的元資料。

首先,需要保證Mysql已經啟動。執行以下命令,檢視Mysql的執行狀態。

sudo service mysql status  

 

通過輸出,可以看出Mysql未啟動。所以需要執行啟動命令。

sudo service mysql start  

 

如果未安裝Mysql則需要執行安裝命令。若我們的環境已安裝Mysql,則無需執行此步。

sudo apt-get install mysql-server  

 

8.開啟Mysql資料庫。

mysql -u root -p  

 

此時會提示輸入密碼

建立名為hive的資料庫,編碼格式為latin1,用於儲存元資料。

create database hive CHARACTER SET latin1;  

 

檢視資料庫是否建立成功。

show databases;  

 

下面,輸入exit退出Mysql。

exit  

 

9.執行測試。由於Hive對資料的處理,依賴MapReduce計算模型,所以需要保證Hadoop相關程序已經啟動。

輸入jps,檢視程序狀態。若Hadoop相關程序未啟動,則需啟動Hadoop。

/apps/hadoop/sbin/start-all.sh  

 

啟動Hadoop後,在終端命令列介面,直接輸入hive便可啟動Hive命令列模式。

hive  

 

輸入HQL語句查詢資料庫,測試Hive是否可以正常使用。

show databases;  

 

至此Hive安裝完畢。