在 Linux 中使用外部 Metastore 進行 Hive 安裝

先決條件:

  1. Java 7
  2. Hadoop(請參閱此處瞭解 Hadoop 安裝)
  3. Mysql Server 和 Client

安裝:

步驟 1:從下載頁面下載最新的 Hive tarball。

第 2 步:解壓縮下載的 tarball( 假設: tarball 在$ HOME 中下載

tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz

第 3 步:更新環境檔案(~/.bashrc

export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH

獲取檔案以設定新的環境變數。

source ~/.bashrc

步驟 4:從此處下載 mysql 的 JDBC 聯結器並將其解壓縮。

tar -xvf mysql-connector-java-a.b.c.tar.gz

解壓縮的目錄包含聯結器 jar 檔案 mysql-connector-java-a.b.c.jar。將它複製到 $HIVE_HOMElib

cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/

組態:

$HIVE_HOME/conf/目錄下建立配置檔案 hive-site.xml,並新增以下與 Metastore 相關的屬性。

<configuration>
   <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost/hive_meta</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>mysqluser</value>
       <description>username to use against metastore database</description>
   </property> 
   
   <property>
       <name>javax.jdo.option.ConnectionPassword</name> 
       <value>mysqlpass</value>
       <description>password to use against metastore database</description>
   </property> 

   <property>
       <name>datanucleus.autoCreateSchema</name>
       <value>false</value> 
   </property> 

   <property>
       <name>datanucleus.fixedDatastore</name>
       <value>true</value>
   </property>
</configuration>

在屬性中相應地更新 MySQL使用者名稱密碼的值。

建立 Metastore 架構:

metaatore 模式指令碼在 $HIVE_HOME/scripts/metastore/upgrade/mysql/下可用

登入 MySQL 並獲取架構,

mysql -u username -ppassword

mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;

啟動 Metastore:

hive --service metastore

要在後臺執行它,

nohup hive --service metastore &

啟動 HiveServer2 :( 如果需要,使用)

hiveserver2

要在後臺執行它,

nohup hiveserver2 metastore &

注意: 這些可執行檔案在 $HIVE_HOME/bin/下可用

連線:

使用 hivebeelineHue 連線 Hive。

不推薦使用 Hive CLI,建議使用 Beeline 或 Hue。

Hue 的其他配置:

$HUE_HOME/desktop/conf/hue.ini 中更新此值

[beeswax] 
    hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf