Hive補助ディレクトリへのOracle NoSQL Databaseライブラリのコピー

Apache Hiveの一部のインストールには、サード・パーティのライブラリを追加できる特別なディレクトリが用意されているため、環境変数HIVE_AUX_JARS_PATHを直接変更する必要はありません。このようなインストールでは、特別なディレクトリにあるJARファイルでHIVE_AUX_JARS_PATHの値を自動的に更新する機能が採用されています。

たとえば、システムがOracle Big Data Appliance (BDA)またはOracle Big Data SQLシステムの場合、ClouderaによってリリースされたHiveは、パッケージまたはパーセル(rpm/debパッケージの代替としてClouderaが提供するバイナリ・ディストリビューション形式)としてインストールされます。システムのHiveインストールがパーセル・ベースと仮定した場合は、次のようなディレクトリが表示されます。

/opt/cloudera/parcels/CDH/lib/hive/auxlib

このようなインストールでは、Hive CLIが起動されるたびに、前述のディレクトリにあるすべてのJARファイルが環境変数HIVE_AUX_JARS_PATHの値に自動的に追加されます。

したがって、必要なOracle NoSQL Database JARファイルをHiveクラスパスで使用できるようにするには、Hiveインストールで提供される補助ライブラリに必要なライブラリをコピーします。たとえば、Hiveインストールで前述のようなhive/auxlibディレクトリが提供されている場合は、次のようにします。

cd /opt/cloudera/parcels/CDH/lib/hive/auxlib

cp /opt/oracle/kv-ee/lib/kvclient.jar kvclient.jar
cp /opt/oracle/kv-ee/lib/commonutil.jar commonutil.jar
cp /opt/oracle/kv-ee/lib/sklogger.jar sklogger.jar 
cp /opt/oracle/kv-ee/lib/failureaccess.jar \
    failureaccess.jar 
cp /opt/oracle/kv-ee/lib/oraclepki.jar oraclepki.jar
cp /opt/oracle/kv-ee/lib/osdt_cert.jar osdt_cert.jar
cp /opt/oracle/kv-ee/lib/osdt_core.jar osdt_core.jar
cp /opt/oracle/kv-ee/lib/antlr4-runtime-nosql-shaded.jar \
    antlr4-runtime-nosql-shaded.jar 
cp /opt/oracle/kv-ee/lib/jackson-core.jar jackson-core.jar
cp /opt/oracle/kv-ee/lib/jackson-databind.jar \
    jackson-databind.jar
cp /opt/oracle/kv-ee/lib/jackson-annotations.jar \
    jackson-annotations.jar

Oracle NoSQL DatabaseをHiveと統合するには、システムのhive/auxlibディレクトリ内のライブラリにリンクするのではなく、Oracle NoSQL Databaseに付属のライブラリをコピーすることが重要です。これらのライブラリをコピーすることで、システムのHadoopおよびHiveディストリビューションに含まれているサード・パーティ・ライブラリの古いバージョンに起因して発生する可能性のあるClassLoader競合エラーが防止されます。