■ はじめに
https://dk521123.hatenablog.com/entry/2020/01/01/000000
の続き。
目次
【0】設定環境 1)前提条件 【1】Derby のインストール 1)Derby の ダウンロード 2)Derby の インストール 3)環境変数の設定 4)環境変数の有効化 5)動作確認 【2】Hive の設定 1)Hive をダウンロード 2)Hive のインストール 3)環境変数の設定 4)環境変数の有効化 【3】Hive の設定ファイルの修正 1)hive-env.sh の修正 2)hive-site.xml の修正 【Z】動作確認・Hello World
【0】設定環境
OS : Ubuntu v18.04.3 LTS (Bionic Beaver) Java : openjdk version "1.8.0_232" Hadoop : v3.2.1 Hive : v3.2.1 DB : Derby v10.14.2.0
1)前提条件
* Hadoop をインストールしていること (以下の関連記事を参照のこと)
https://dk521123.hatenablog.com/entry/2020/01/01/000000
【1】Derby のインストール
1)Derby の ダウンロード
以下のサイトから、Derby をダウンロードする => 今回は、「db-derby-10.14.2.0-bin.tar.gz」
http://db.apache.org/derby/derby_downloads.html
以下のコマンドでもできる。 === wget https://ftp.kddi-research.jp/infosystems/apache//db/derby/db-derby-10.14.2.0/db-derby-10.14.2.0-bin.tar.gz ===
2)Derby の インストール
1)でダウンロードしたモジュールを任意の場所に解凍する。 cd /opt sudo tar xvzf ~/db-derby-10.14.2.0-bin.tar.gz # 権限設定 cd /opt/db-derby-10.14.2.0-bin sudo chown -R user:user /opt/db-derby-10.14.2.0-bin
3)環境変数の設定
環境変数「DERBY_HOME」「DERBY_INSTALL」「PATH」を以下のように設定する sudo vi /etc/profile.d/derby.sh
/etc/profile.d/derby.sh
export DERBY_HOME=/opt/db-derby-10.14.2.0-bin export DERBY_INSTALL=$DERBY_HOME export PATH=$DERBY_HOME/bin:$PATH
4)環境変数の有効化
source /etc/profile.d/derby.sh
5)動作確認
# バージョン情報を表示 sysinfo
【2】Hive の設定
1)Hive をダウンロード
以下のサイトからHiveをダウンロードする => 今回は、「apache-hive-3.1.2-bin.tar.gz」
https://hive.apache.org/downloads.html
または、以下のコマンドでダウンロード。 === wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz ===
2)Hive のインストール
任意の場所に解凍する cd /opt sudo tar xvzf ~/apache-hive-3.1.2-bin.tar.gz # 権限設定 sudo chown -R user:user /opt/apache-hive-3.1.2-bin
3)環境変数の設定
環境変数「HIVE_HOME」「PATH」を以下のように設定する sudo vi /etc/profile.d/hive.sh
/etc/profile.d/hive.sh
export HIVE_HOME=/opt/apache-hive-3.1.2-bin export PATH=$HIVE_HOME/bin:$PATH
4)環境変数の有効化
source /etc/profile.d/hive.sh
【3】Hive の設定ファイルの修正
1)hive-env.sh の修正
「$HIVE_HOME/conf/hive-env.sh.template」を コピー&ペーストし、「hive-env.sh」とリネーム。 cp /opt/apache-hive-3.1.2-bin/conf/hive-env.sh.template /opt/apache-hive-3.1.2-bin/conf/hive-env.sh 以下を参考に修正。 === vi /opt/apache-hive-3.1.2-bin/conf/hive-env.sh source /opt/metastore_db ===
/opt/apache-hive-3.1.2-bin/conf/hive-env.sh
export HADOOP_HOME="/opt/hadoop-3.2.1" export HIVE_HOME="/opt/apache-hive-3.1.2-bin" export DERBY_HOME="/opt/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"
2)hive-site.xml の修正
「%HIVE_HOME%/conf/hive-default.xml.template」を コピー&ペーストし、「hive-site.xml」とリネーム。 cp /opt/apache-hive-3.1.2-bin/conf/hive-default.xml.template /opt/apache-hive-3.1.2-bin/conf/hive-site.xml 以下を参考に修正。 === vi /opt/apache-hive-3.1.2-bin/conf/hive-site.xml ===
/opt/apache-hive-3.1.2-bin/conf/hive-site.xml
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=/opt/apache-hive-3.1.2-bin/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>hive.txn.xlock.iow</name> <value>true</value> <description> <!-- 特殊文字「」を削除 --> </description> </property> <property> <name>hive.druid.metadata.db.type</name> <!-- 「derby」に修正 --> <value>derby</value> <description> Expects one of the pattern in [mysql, postgresql, derby]. Type of the metadata database. </description> </property> <!-- Add --> <property> <name>system:java.io.tmpdir</name> <value>/tmp</value> </property> <!-- Add --> <property> <name>system:user.name</name> <value>${user.name}</value> </property>
【Z】動作確認・Hello World
以下を参考に動かしてみる
https://www.atmarkit.co.jp/ait/articles/0902/27/news129_3.html
データ
vi /home/user/person.csv
/home/user/person.csv
1,Mike,28 2,Tom,32 3,Ken,43 4,Smith,23 5,Kevin,30
コマンド例
# HIVE_HOME に移動 cd $HIVE_HOME hive # テーブル作成 CREATE TABLE person(id BIGINT, name STRING, age INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; # テーブル一覧表示 SHOW TABLES; # データ挿入 LOAD DATA LOCAL INPATH '/home/user/person.csv' OVERWRITE INTO TABLE person; # データ表示 SELECT * FROM person; # 終了 exit;
トラブルシューティング
hive コマンドを実行時にでたトラブルシューティングは 以下の関連記事にまとめている
Hadoop / Hive 環境構築時のトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/02/12/160221
関連記事
Apache Hadoop ~ 環境設定 / Linux編 ~
https://dk521123.hatenablog.com/entry/2020/01/01/000000
Apache Hive ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/28/021109
Apache Derby ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/31/193105
Docker Desktop / WSL2 ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
Hadoop / Hive 環境構築時のトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/02/12/160221