Sqoop import failed because of error “Make sure HIVE_CONF_DIR is set correctly”

hadoop
この記事は約3分で読めます。

Sqoop Import failed after CDH upgrading

Hadoop環境をCDH5.3.xから5.7.xへアップグレードするとsqoopは1.4.5から1.4.6になったが、sqoop importを実行しようとしたところ以下のようなエラーでhive-importに失敗してしまう。MapreduceジョブによるHDFS上の一時ディレクトリへの書き込みまでは問題なく進んでおり、最後のHiveCLIを起動してのLOAD DATAするところでエラーになっているようだった。

どうも参照しているHive関連のクラスが見つからないようだ。ソースを追っていくとHiveのLOAD DATAを実行しているのは以下の部分にあたる。

getHiveArgsをさらに追っていくと、Exceptionで落ちているところは以下。

HiveConfのクラスが見つからないということで、HIVEに関するクラスパスなどの環境変数を定義しているところを探してみる。

sqoopコマンドを追っていくと以下の箇所で環境変数であるHIVE_HOMEに関する設定を行なっていることがわかる。

私の環境では、/usr/lib/hive/の下に共通で使うライブラリを置いていたので、上記の処理の中でHIVE_HOME/usr/lib/hiveに向いてしまっていたようだった。しかし、私の環境ではCDHをClouderaManagerのParcelでインストールしているため、ここにhive本体は存在していない。

したがって、以下のように改めてHIVE_HOMEの正しいパスを指定してあげると、無事sqoopコマンドを実行することができた。

もしくは、/usr/lib/hiveをrmまたはmvすれば良いだろう。

参考リンク

  • http://www.ericlin.me/sqoop-hive-import-failed-after-upgrading-to-cdh5-4-x-or-cdh5-5-x
  • https://community.cloudera.com/t5/Batch-SQL-Apache-Hive/Error-with-quot-Make-sure-HIVE-CONF-DIR-is-set-correctly-quot/td-p/37423
  • https://github.com/apache/sqoop/commit/d408252086d4351eac211cfc2203dc15c660ad31

コメント

タイトルとURLをコピーしました