首頁>技術>

本文安裝和配置的Hive版本為 2.3.7,和Hadoop 3.x有比較好的相容。

在正式開始安裝Hive之前,先簡要說明一下已經預裝好的相關係統的版本號:

(1)JDK版本:JDK 1.8.0

(2)Hadoop版本:Hadoop 3.1.2

(3)Hive版本:Hive 2.3.7

(4)MySQL版本:MySql 5.7.27

(5)Linux 版本:CentOS 7.4

預設環境中JDK 1.8已經正常安裝,Hadoop 3.1.2 叢集正常啟動。如果對Hadoop 3.1.2 詳細安裝過程有興趣,可以訪問《Hadoop v3.1大資料技術快速入門》技術專欄

Hive 2.x的安裝略顯複雜,安裝下面的詳細步驟一步步操作,就可以安裝成功了。

一、檢視Hadoop版本

安裝Hive的前提條件是Hadoop 已經安裝好了。另外,Hive的版本和Hadoop的版本必須匹配。

[root@centos-103 local]# hadoop version

Hadoop 3.1.2

Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9a

Compiled by sunilg on 2019-01-29T01:39Z

Compiled with protoc 2.5.0

From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9

This command was run using /usr/local/hadoop/hadoop-3.1.2/share/hadoop/common/hadoop-common-3.1.2.jar

二、下載並解壓Hive安裝包

訪問Apache國內映象站點,獲取Hive安裝包。

https://mirror.bit.edu.cn/apache/hive/hive-2.3.7/

透過wget命令,獲取hive壓縮包。

wget https://mirror.bit.edu.cn/apache/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz

解壓到指定的目錄/usr/local。

tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /usr/local

如圖所示,解壓後的目錄為apache-hive-2.3.7-bin。

使用mv命令重新命名解壓後的資料夾apache-hive-2.3.7-bin為 hive-2.3.7,如下所示。

mv apache-hive-2.3.7-bin/ hive-2.3.7

然後將Hive的安裝目錄 /usr/local/hive-2.3.7 配置到 /etc/profile 的PATH環境變數中,如下所示。

# hive setting 2.3.7

export HIVE_HOME=/usr/local/hive-2.3.7

export PATH=$HIVE_HOME/bin:$PATH

執行 source /etc/profile 命令使上述配置生效。

執行 hive --version,檢視hive版本號。下面有hive的版本顯示,安裝成功!

三、配置Hive

(1)hive-default.xml 配置檔案

重新命名hive/conf下的hive-default.xml 配置檔案

下面命令是將hive-default.xml.template重新命名為hive-default.xml。

mv conf/hive-default.xml.template conf/hive-default.xml

(2)hive-site.xml 配置檔案

使用vim編輯器新建一個配置檔案hive-site.xml,命令如下:

cd $HIVE_HOME/conf

vim hive-site.xml

在配置檔案中新增如下配置,包括連線MySQL的字串、驅動、使用者名稱和密碼等等。

<configuration>

<property>

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

<value>jdbc:mysql://192.168.56.103:3306/hive_2_3?useSSL=false&createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>

<property>

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

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

<property>

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

<value>hive</value>

<description>username to use against metastore database</description>

</property>

<property>

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

<value>hive</value>

<description>password to use against metastore database</description>

</property>

</configuration>

(3)hive-env.sh 配置檔案

修改hive-env.sh 檔案,使用cp命令複製檔案:

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

然後,編輯該檔案,設定一些配置項,如圖所示。

vim hive-env.sh

四、安裝和配置MySQL

這裡MySQL環境已經安裝完成了,具體安裝步驟可以參考《Hadoop v3.1大資料技術快速入門》技術專欄。

(1)Hive連線MySQL的驅動檔案

MySQL JDBC包,可以自行下載。下載完成之後,解壓,然後將mysql-connector-java-5.1.49-bin.jar複製到/usr/local/hive-2.3.7/lib目錄下。

cp mysql-connector-java-5.1.49.jar /usr/local/hive-2.3.7/lib

(2)建立和配置Hive元資料庫

可以在MySQL的client端工具,如Navicat,執行如下SQL命令。

// 建立Hive元資料庫,需要和前面hive-site.xml 配置檔案中的連線保持一致

create database hive_2_3;

// 設定MySQL密碼驗證策略,簡單一點

set global validate_password_policy=0;

set global validate_password_length=1;

// 將hive_2_3 資料庫的所有表的所有許可權賦給hive使用者

grant all on hive_2_3.* to hive@'%' identified by 'hive';

上述命令簡要說明:grant 許可權型別 on 資料庫名.表名 to '使用者名稱'@'ip地址' identified by '使用者密碼',給使用者hive分配許可權。

// 重新整理MySQL系統許可權關係表

FLUSH PRIVILEGES;

五、初始化Hive資料庫

Hive現在包含一個用於 Hive Metastore schema操作的工具,名為 schematool。此工具可用於初始化當前 Hive 版本的 Metastore schema。此外,其還可處理從較舊版本到新版本的架構升級。

重新初始化schema:

schematool -dbType mysql -initSchema

如圖所示,顯示metastore元資料初始化完成。

如果在初始化過程中出現類似如下的異常資訊:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'hive'@'localhost

那是因為使用者hive沒有許可權訪問 hive_2_3 資料庫。仔細檢查前面的前面的SQL 指令碼有沒有正確執行。

可以透過Navicat工具,連線MySQL 伺服器,檢視初始化完成之後的元資料hive_2_3,如圖所示。

六、啟動Hive

(1)啟動Hadoop

在啟動Hive之前,先啟動Hadoop,使用jps命令驗證Hadoop的5個程序都已經成功啟動。

start-all.sh 啟動Hadoop程序;

jps -l 檢視已經啟動的Hadoop程序;

(2)啟動Hive

現在可以hive了,如圖所示。

最後一段輸出資訊:

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.

大致意思:在Hive 2.0後在Mapreduce的框架上將不再支援,希望考慮使用其它的執行引擎(如tez, spark等)。

在hive互動式命令列,執行命令:

hive> set hive.execution.engine;

hive.execution.engine=mr

可以看到當前正在使用的計算引擎為MapReduce。

在hive互動式命令列中,輸入show databases; 命令,檢視hive中的資料庫。

如果要退出Hive互動式執行環境,可以輸入如下命令:【quit; 或者exit;】。

22
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • mybatis手寫還不會?這份手寫寶典你值得擁有