ストアがセキュアな場合のCountTableRowsのビルド

この項では、ビルドに含める必要があるすべてのJavaクラスをコンパイルする方法について説明します。付録「セキュア・ストアのデプロイ」でデプロイしたようなセキュア・ストアに対してCountTableRowsを実行する場合、CountTableRowsプログラムを含めること以外にも、セキュリティ資格証明ファイルと、CountTableRowsの実行時に様々なセキュリティ関連機能を実行するために使用することになるKVSecurityCreationプログラムおよびKVSecurityUtilクラスもビルドに含める必要があります。

セキュア・バージョンのCountTableRowsを実行する場合に必要になるKVSecurityCreationクラスとKVSecurityUtilクラスをコンパイルするには、コマンドラインに次のように入力します。

cd /opt/oracle/nosql/apps/kv

javac -classpath \
    /opt/oracle/kv-ee/lib/kvstore.jar:examples \
    examples/hadoop/table/KVSecurityCreation.java

javac -classpath \
    /opt/oracle/kv-ee/lib/kvstore.jar:examples \
    examples/hadoop/table/KVSecurityUtil.java

KVSecurityCreationKVSecurityUtilのコンパイルが完了すると、前の項と同様の方法でCountTableRows自体をコンパイルできます。つまり、次のようにします。

javac -classpath \
    /opt/cloudera/parcels/CDH/jars/commons-logging-1.1.3.jar: \
    /opt/cloudera/parcels/CDH/jars/
        hadoop-common-3.0.0-cdh6.3.0.jar: \
    /opt/cloudera/parcels/CDH/jars/ \
        hadoop-mapreduce-client-core-3.0.0-cdh6.3.0.jar: \
    /opt/cloudera/parcels/CDH/jars/ \
        hadoop-annotations-3.0.0-cdh6.3.0.jar: \
    /opt/cloudera/parcels/CDH/jars/ \
        hadoop-yarn-api-3.0.0-cdh6.3.0.jar: \
    /opt/oracle/kv-ee/lib/kvclient.jar:examples \
        examples/hadoop/table/CountTableRows.java

このコマンドラインによって、次のクラス・ファイルが生成されます。

/opt/oracle/nosql/apps/kv/examples/hadoop/table/
    CountTableRows.class
    CountTableRows$Map.class
    CountTableRows$Reduce.class
    KVSecurityUtil.class
    KVSecurityCreation.class

非セキュア・ケースとは異なり、CountTableRowsをセキュア環境にデプロイするために必要なビルド・アーティファクトには、生成されたクラス・ファイルを格納している単一のJARファイル以外のものも含まれます。セキュア・ケースでは、ストアと通信するアプリケーションのクライアント側にデプロイするアーティファクトのパッケージを作成することと、それとは別のアプリケーションのサーバー側にデプロイするアーティファクトのパッケージを作成する必要もあります。

特定のアプリケーションのデプロイ時に、この「考慮事項の分離」を達成するには様々な方法がありますが、このドキュメントの付録「セキュア・クライアントのビルドおよびパッケージ化のためのモデル」には、セキュア・ストアと対話するアプリケーションのアーティファクトをパッケージ化およびデプロイするために使用できる特定のモデルを示しています。この点を考慮して、このドキュメントのセキュア・ストアに対するCountTableRowsの実行に関連する各項では、アプリケーションが、付録「セキュア・クライアントのビルドおよびパッケージ化のためのモデル」に示した手順に従ってビルドおよびパッケージ化されていることを前提としています。