■ はじめに
https://dk521123.hatenablog.com/entry/2019/12/26/223506
の続き。 やっとこ、Apache Hadoop on Windows が終わったので 今度は、Hive環境を構築する
■ 設定環境
DBについては、サポートされているDB(※)から 選択すればいいが、今回は、Derby。
※ サポートDB
https://cwiki.apache.org/confluence/display/Hive/Hive+Schema+Tool
より抜粋 === derby|mysql|postgres|oracle|mssql ===
今回行った環境
OS : Windows10 Cygwin : 3.1.2(0.340/5/3) 2019-12-21 15:25 x86_64 Java : jdk-8u231-windows-x64 Hadoop : v3.1.3 Hive : v3.1.2 DB : Derby v10.14.2.0
注意
* Hiveのバージョンで、v3.X系をインストールする場合、 Hadoopのバージョンも、v3.X系で合わせる (Hive v3.Xで、Hadoop v2.Xは不可)
■ 設定手順
前提条件
以下を参考に、 Java / Hadoop / Derby をインストールされていること
Java / Hadoop
https://dk521123.hatenablog.com/entry/2019/12/26/223506
Derby
https://dk521123.hatenablog.com/entry/2019/12/31/193105
【1】Cygwin の設定
[1-1] Cygwin のダウンロード&インストール
Cygwin(シグウィン)を以下からダウンロードし、 インストールする => 今回は、デフォルトの「C:\cygwin64」にインストール
https://cygwin.com/install.html
[1-2] 環境変数「PATH」の設定
Path = 「C:\cygwin64\bin」「C:\cygwin64\sbin」を追加
【2】Hive の設定
[2-1] Hive をダウンロード
以下のサイトからHiveをダウンロードする => 今回は、「apache-hive-3.1.2-bin.tar.gz」
https://hive.apache.org/downloads.html
[2-2] Hive のインストール
任意の場所に解凍する => tar.gzなので、7Zipなどの解凍ソフトやtarコマンドで解凍 => 今回は、「C:\work\apache-hive-3.1.2-bin」
[1-2] 環境変数「HIVE_HOME」「PATH」の設定
HIVE_HOME = C:\work\apache-hive-3.1.2-bin Path = 「%HIVE_HOME%/bin」を追加
【3】Hive の設定ファイルの修正
[3-1] hive-env.sh の修正
「%HIVE_HOME%\conf\hive-env.sh.template」を コピー&ペーストし、「hive-env.sh」とリネーム。 以下を参考に修正。
【修正内容 : hive-env.sh】
export HADOOP_HOME="/cygdrive/c/work/hadoop-3.1.3" export HIVE_HOME="/cygdrive/c/work/apache-hive-3.1.2-bin" export DERBY_HOME="/cygdrive/c/work/db-derby-10.14.2.0-bin" export DERBY_INSTALL=$DERBY_HOME export PATH="$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin:$DERBY_HOME/bin" export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*.jar:$HADOOP_HOME/share/hadoop/**/*.jar export HADOOP_OPTS="$HADOOP_OPTS -Djava.io.tmpdir=/tmp"
[3-2] hive-site.xml の修正
「%HIVE_HOME%\conf\hive-default.xml.template」を コピー&ペーストし、「hive-site.xml」とリネーム。 以下を参考に修正。 なお、各パラメータの説明は、以下が参考になる。
https://software.fujitsu.com/jp/manual/manualfiles/m160007/j2ul2025/02z200/j2025-c-03-00.html
【修正内容 : hive-site.xml】
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby://localhost:1527/metastore_db;create=true</value> <description> JDBC connect string for a JDBC metastore. To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL. For example, jdbc:postgresql://myhost/db?ssl=true for postgres database. </description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>admin</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> <description>password to use against metastore database</description> </property> <property> <name>hive.txn.xlock.iow</name> <value>true</value> <description> Ensures commands with OVERWRITE (such as INSERT OVERWRITE) acquire Exclusive locks for transactional tables. This ensures that inserts (w/o overwrite) running concurrently are not hidden by the INSERT OVERWRITE. </description> </property> <property> <name>hive.session.id</name> <value>hive_session_id</value> <description/> </property> <!-- Add --> <property> <name>system:java.io.tmpdir</name> <value>/cygdrive/c/tmp</value> </property> <!-- Add --> <property> <name>system:user.name</name> <value>${user.name}</value> </property>
【6】Hive HDFS フォルダの作成
[6-1] コマンドプロンプトを立ち上げて、以下のコマンドを行う
# hadoop サービス開始 start-all # Hive HDFS フォルダの作成 hadoop fs -mkdir /tmp hadoop fs -mkdir -p /user/hive/warehouse # Hive HDFS フォルダのパーミッション hadoop fs -chmod 777 /tmp hadoop fs -chmod 777 /user/hive/warehouse
【5】確認
[5-1] hive の起動確認
Cygwin を立ち上げて、以下のコマンドを行う # 1 hive --help # 2 hive # トラブル時に詳細な情報を拾うためには... hive -hiveconf hive.root.logger=DEBUG,console
参考文献
https://kontext.tech/column/hadoop/291/apache-hive-300-installation-on-windows-10-step-by-step-guide
https://www.zymr.com/hive-installation-windows-7/
https://qiita.com/Esfahan/items/a6f2107876e5a712a72c
トラブルシュート
関連記事
Apache Hadoop ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/26/223506
Apache Hive ~ HiveQL / 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/25/231235
Hive / HiveQL ~ パーティション / Partition 機能 ~
https://dk521123.hatenablog.com/entry/2020/07/16/224332
Apache Hive ~ HiveQL / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/03/04/225943
Apache Derby ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/31/193105