【トラブル】Hadoop / Hive 環境構築時のトラブルシューティング

■ はじめに

https://dk521123.hatenablog.com/entry/2019/12/26/223506
https://dk521123.hatenablog.com/entry/2020/01/01/000000
https://dk521123.hatenablog.com/entry/2020/01/02/000000

で発生した環境構築でのトラブルをメモしておく

目次

【1】エラー「port 22: Connection refused」が発生する
【2】エラー「ERROR XBM0H: Directory /xxxx/metastore_db cannot be created.」が発生する

【1】エラー「port 22: Connection refused」が発生する

https://dk521123.hatenablog.com/entry/2020/01/01/000000

で一通り設定後、「【5】動作確認」の「2)Web UIによる確認」で
「Node Manager」と「Name Node (Hadoop v3系の場合)」が繋がらなかった。
よくよくコマンドの出力結果を見直すと、以下のエラー内容のようになっていた。

設定環境

設定環境は、Docker Desktop / WSL2 上で行っている
詳細は、以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2020/12/08/165505

エラー内容

localhost: ssh: connect to host localhost port 22: Connection refused

詳細・実行コマンド例

$ start-dfs.sh
Starting namenodes on [localhost]
localhost: ssh: connect to host localhost port 22: Connection refused
Starting datanodes
localhost: ssh: connect to host localhost port 22: Connection refused
Starting secondary namenodes [LAPTOP-R760QSF6]
LAPTOP-R760QSF6: ssh: connect to host laptop-r760qsf6 port 22: Connection refused

原因

その1

* SSH に接続できていない

その2

* SSH がインストールされていない
もしくは
* SSHサービスが起動されていない

解決案

その1

* パスワード認証によるSSH接続の許可を行う

1)/etc/ssh/sshd_config を修正する

sudo vi /etc/ssh/sshd_config
====
PasswordAuthentication yes
====

2)SSHを再起動する

sudo /etc/init.d/ssh restart

その2
1)SSHをインストールする

 sudo apt-get install ssh

2)SSHサービス再起動する

sudo service ssh restart

【2】エラー「ERROR XBM0H: Directory /xxxx/metastore_db cannot be created.」が発生する

hive コマンドを実行した際に
エラー「ERROR XBM0H: Directory /xxxx/metastore_db cannot be created.」が発生した

エラー内容

・・・略・・・
Fri Feb 12 17:15:48 JST 2021 Thread[Thread-8,5,main] Cleanup action starting
ERROR XBM0H: Directory /opt/metastore_db cannot be created.
        at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
        at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
        at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source)
        ・・・略・・・
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Cleanup action completed
Fri Feb 12 17:15:48 JST 2021 Thread[Thread-8,5,main] Cleanup action starting
java.sql.SQLException: Failed to create database 'metastore_db', see the next exception for details.
・・・略・・・

原因

権限のないディレクトリ配下(今回は、「/opt/」)で
ディレクトリ「/opt/metastore_db」を作成しようとしているため

解決案

「$HIVE_HOME」に移動し、hive を実行

cd $HIVE_HOME
hive

前提条件

前提条件として権限設定がされていること。
===
sudo chown -R user:user /opt/apache-hive-3.1.2-bin
===

関連記事

Apache Hadoop ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/26/223506
Apache Hadoop ~ 環境設定 / Linux編 ~
https://dk521123.hatenablog.com/entry/2020/01/01/000000
Hive / HiveQL ~ 環境設定 / Linux編 ~
https://dk521123.hatenablog.com/entry/2020/01/02/000000
Docker Desktop / WSL2 ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
Hive に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/11/20/174039
Hive / Partition に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/28/175428