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安裝完畢。