Hiveのインストールと実行方法

スポンサーリンク

 Apache Hive™ のインストールとスタンドアロンモードでの実行方法についてです。

Hiveのインストール

公式のインストール方法は  GettingStarted - Apache Hive を参考にしています。

 Downloads ページから Apache mirrors に移動してビルド済みのパッケージをダウンロードします。

# cd /usr/local/lib/
# wget http://ftp.riken.jp/net/apache/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
# tar zxf apache-hive-1.2.1-bin.tar.gz
# rm apache-hive-1.2.1-bin.tar.gz
# ln -s apache-hive-1.2.1-bin hive

Hive のバイナリがあるディレクトリに PATH を通しておきます。

# echo 'export HIVE_HOME=/usr/local/lib/hive' >> /etc/profile.d/hive.sh
# echo 'export PATH="$HIVE_HOME/bin:$PATH"' >> /etc/profile.d/hive.sh
# source /etc/profile

 Installing Hive from a StableRelease - GettingStarted

JDK も必要になるのでインストールしてください。サポートされているバージョンは  コチラ を参照。

 CentOSにJava(JDK)をRPMでインストール+バージョン変更について
 MacでHomebrewを使用して複数バージョンのJava (JDK) をインストールして切り替える方法

また、Hive は Hadoop 上で動いているため、Hadoop も必要になります。

# hive --version
Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path

Hadoop をインストールして HADOOP_HOME の環境変数を設定してください。

 Hadoopのインストールと実行方法(スタンドアロンモード)

Hive コマンドが使用できるようになりました。

# hive --version
Hive 1.2.1
Subversion git://localhost.localdomain/home/sush/dev/hive.git -r 243e7c1ac39cb7ac8b65c5bc6988f5cc3162f558
Compiled by sush on Fri Jun 19 02:03:48 PDT 2015
From source with checksum ab480aca41b24a9c3751b8c023338231

Hiveの起動

hiveコマンドで Hive シェルが起動しますが、これはデフォルトのサービスであるhive cliで起動した時と同じです。

# hive
Logging initialized using configuration in jar:file:/usr/local/lib/apache-hive-1.2.1-bin/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive> exit;

起動した後は、カレントディレクトリにmetastore_dbderby.logが作成されていると思います。 metastore_dbはテーブル定義などが保存されているディレクトリなので、別の場所から起動したり削除してしまうと、作成したテーブルが無いという状態になります。 derby.logに関しては Hive には Java で実装された Derby という DB が組み込まれており、デフォルトでは Hive コマンド起動により Derby も起動するようになっているため出力されています。

# ll
drwxr-xr-x  5 root root   4096 Feb 14 14:40 metastore_db
-rw-r--r--  1 root root  21109 Feb 14 14:40 derby.log

metastore_dbの場所を変更したい場合はconf/hive-site.xmlを作成して以下を設定します。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=/tmp/hive/metastore_db;create=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
</configuration>

derby.logconf/hive-env.shにプロパティを指定することで出力先を変更できます。

# cp conf/hive-env.sh.template conf/hive-env.sh
# vi conf/hive-env.sh
export HADOOP_OPTS="$HADOOP_OPTS -Dderby.stream.error.file=/usr/local/lib/hive/log/derby.log"

ログはデフォルトだと/tmp/<実行ユーザー>/hive.logに出力されますが、hive-log4j.propertiesで変更可能です。

# cp conf/hive-log4j.properties.template conf/hive-log4j.properties
# vi conf/hive-log4j.properties
hive.log.dir=/usr/local/lib/hive/log

CDH5を使用したインストール

CDH5 を使用した Hive のインストール方法です。まずは  CDH5のインストール をしてください。

Yum から Hive を依存関係もまとめてインストールします。

# yum install hive

 Installing Hive - Cloudera Product Documentation

インストール先や作成されるディレクトリは次の通りです。設定ファイル関連は/etc/hive/confにあります。

# find / -type d -name "hive"
/usr/lib/hive
/etc/hive
/var/run/hive
/var/lib/hive
/var/log/hive

metastore_dbははじめから/var/lib/hive以下に作成される設定となっていますが、ログはディレクトリ/var/log/hiveが作成されていてもデフォルトのままなのでconf/hive-log4j.propertiesで変更しましょう。