【Hive】(二)環境介紹

學習的搬運工,筆記摘自 實驗樓課程

目錄

1、實驗介紹

2、Hive運行模式

3、下載安裝及配置

4、本地模式

5、內嵌模式


1、實驗介紹

實驗內容

  • Hive 安裝與準備
  • Hive 的運行模式
  • Hive 與mysql數據庫的連接

實驗知識點

  • 配置數據庫連接驅動
  • 運行模式
  • mysql

實驗環境

  • Hive 1.2.1
  • hadoop 2.7.3
  • Xfce終端

2、Hive運行模式

與 Hadoop 類似,Hive 也有 3 種運行模式:

1. 內嵌模式

將元數據保存在本地內嵌的 Derby 數據庫中,這是使用 Hive 最簡單的方式。但是這種方式缺點也比較明顯,因爲一個內嵌的 Derby 數據庫每次只能訪問一個數據文件,這也就意味着它不支持多會話連接。

2. 本地模式

這種模式是將元數據保存在本地獨立的數據庫中(一般是 MySQL),這就可以支持多會話和多用戶連接了。

3. 遠程模式

此模式應用於 Hive 客戶端較多的情況。把 MySQL 數據庫獨立出來,將元數據保存在遠端獨立的 MySQL 服務中,避免了在每個客戶端都安裝 MySQL 服務從而造成冗餘浪費的情況。

 

3、下載安裝及配置

首先打開終端切換到hadoop用戶下:

su -l hadoop #密碼爲hadoop

3-1

Hive 是基於 Hadoop 文件系統之上的數據倉庫。因此,安裝Hive之前必須確保 Hadoop 已經成功安裝。本次實驗,使用Hive 1.2.1版本。Hive 1.2.1 可以在 Hadoop V2.7.x以上環境中工作。

  • 下載apache-hive-1.2.1-bin.tar.gz 後,對其進行解壓: tar zxvf apache-hive-1.2.1-bin.tar.gz

 

配置系統環境變量

  • 修改/etc/profile文件。
  • 修改 .bashrc 文件
sudo vim /etc/profile
# Hive environment
export HIVE_HOME=/opt/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin

注意:個人實驗在/etc/profile配置環境信息即可,而在實際生產環境中,運維人員會將配置信息統一寫到專門的文件中

 

Hadoop集羣啓動

先進入的/opt/hadoop-2.7.3/sbin目錄下,再啓動hdfs

$ cd /opt/hadoop-2.7.3/sbin
$ hdfs namenode -format                 #namenode初始化
$ ./start-all.sh                          # 啓動hadoop

驗證hdfs是否啓動成功

  1. 輸入jps查看相關進程是否存在
  2. 輸入hadoop dfs -fs /確定能否鏈接成功

2-3-1

 

4、本地模式

現在我們替換默認的 Derby 數據庫爲 MySQL數據庫。

(1)下載安裝 MySQL

$ sudo apt-get install mysql-server

本實驗環境下默認是安裝了 MySQL 的,直接啓動它:

$ sudo service mysql start

添加 root 用戶,創建 hive 數據庫:

mysql -u root -p  #沒有密碼直接回車即可
create database hive;  #創建hive數據庫
grant all on hive.* to 'hive'@'localhost' identified by 'hive';   #創建用戶hive

此處輸入圖片的描述

此處輸入圖片的描述

雖然 MySQL 已經默認安裝,但我們還需要下載一個 MySQL 的 JDBC 驅動包。這裏使用的是 mysql-connector-java-5.1.32-bin.jar,你需要將其複製到$HIVE_HOME/lib 目錄下面:

$ sudo mv /home/shiyanlou/mysql-connector-java-5.1.32-bin.jar /opt/apache-hive-1.2.1-bin/lib/

這裏我們提供了 mysql-connector-java-5.1.32.jar的下載鏈接,需要的同學可以自行下載:

wget http://labfile.oss.aliyuncs.com/courses/38/mysql-connector-java-5.1.32.rar

(2)修改 hive-site.xml 配置文件

最後,依然是修改 $HIVE_HOME/conf 下的 hive-site.xml 文件,把默認的 Derby 修改爲 MySQL :

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    //所連接的MySQL數據庫實例
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    //連接的MySQL數據庫驅動
    <value>com.mysql.jdbc.Driver</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    //連接的MySQL數據庫用戶名
    <value>hive</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    //連接的MySQL數據庫密碼
    <value>hive</value>
</property>

(3)啓動 Hive

初始化hive元數據庫:

schematool -dbType mysql -initSchema

注意:hive已經初始化,這裏僅需要我們啓動hive即可。

啓動 Hive 的方式如下(需要在實驗環境中操作):

cd /opt/apache-hive-1.2.1-bin/bin
hive

2-6-1

 

5、內嵌模式

注意:由於實驗樓配置的本地模式,這裏就不給出內嵌模式的運行截圖了,同學們可以自己在本地電腦操作,實驗樓環境中不需要進行此操作,只有標明瞭需要在環境中操作的步驟纔在環境中操作

(1)hive-site.xml

$HIVE_HOME/conf 對應的是 Hive 的配置文件路徑,類似於之前學習的HBase, 該路徑下的 hive-site.xml 是 Hive 工程的配置文件。默認情況下,該文件並不存在,我們需要拷貝它的模版來實現(這裏暫時不需要修改,先拷貝):

先切換到對應的目錄下操作。

cd /opt/apache-hive-1.2.1-bin/conf/
ls

2-4-1

$ sudo cp hive-default.xml.template hive-site.xml

hive-site.xml 的主要配置有以下,不需要修改:

此處輸入圖片的描述

此處輸入圖片的描述

  • hive.metastore.warehouse.dir 該參數指定了 Hive 的數據存儲目錄,默認位置在 HDFS 上面的 /user/hive/warehouse 路徑下。
  • hive.exec.scratchdir 該參數指定了 Hive 的數據臨時文件目錄,默認位置爲 HDFS 上面的 /tmp/hive 路徑下。

同時我們還要修改 Hive 目錄下 /conf/hive-env.sh 文件(請根據自己的實際路徑修改),該文件默認也不存在,同樣是拷貝它的模版來修改:

cat hive-env.sh

 

(2)創建必要目錄

前面我們看到 hive-site.xml 文件中有兩個重要的路徑,切換到 hadoop 用戶下查看 HDFS (需要先啓動 Hadoop)是否有這些路徑:

$ hadoop dfs -ls /

2-4-3

沒有發現上面提到的路徑,因此我們需要自己新建這些目錄,並且給它們賦予用戶寫(W)權限。 注意:這裏需要同學們實際操作,新建這些目錄

$ hadoop dfs -mkdir /user
$ hadoop dfs -mkdir /user/hive
$ hadoop dfs -mkdir /user/hive/warehouse
$ hadoop dfs -mkdir /tmp
$ hadoop dfs -mkdir /tmp/hive
$ hadoop dfs -chmod 777 /user/hive/warehouse
$ hadoop dfs -chmod 777 /tmp/hive

2-4-4

檢查是否新建成功 hadoop dfs -ls / 以及 hadoop dfs -ls /user/hive/ :

2-4-5

(3)修改 io.tmpdir 路徑

同時,要修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 字段的 value ,可以自己新建一個目錄來替換它,例如 /home/hadoop/hive/iotmp 。(以下是一個修改示例,其他的同理)

<value>${system:java.io.tmpdir}/${system:user.name}</value>

改成

<value>/home/hadoop/hive/iotmp</value>

並且需要在/home/hadoop/下建立相應的目錄

$ mkdir /home/hadoop/hive

如果不修改這個目錄,你很可能會出現如下錯誤:

此處輸入圖片的描述
(vim下 / 表示搜索,後面跟你的關鍵詞,比如搜索 hello,則爲 /hello , 再回車即可), 同樣注意修改寫權限。

(4)運行 Hive

前面我們已經提到過,內嵌模式使用默認配置和 Derby 數據庫,所以無需其它特別修改直接運行 hive(確保 Hadoop 已經先啓動)。完整步驟如下:

cd ..
cd bin/
schematool -dbType derby -initSchema  # 初始化hive的元數據庫
hive  #啓動hive
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章