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_db
とderby.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.log
はconf/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
で変更しましょう。