CountTableRows
サンプルのコンパイル、ビルドおよび実行
サンプルvehicleTable
の作成とデータ移入のためのLoadVehicleTable
プログラムを実行した後(付録「CountTableRowsのサポート・プログラム」を参照)、ただし、サンプルMapReduceジョブの実行前に、HadoopインフラストラクチャへのデプロイメントのためにCountTableRows
プログラムをコンパイルして、コンパイルしたアーティファクトをパッケージ化しておく必要があります。
CountTableRows
プログラムをコンパイルするには、プログラム・クラスパスに含める複数のHadoop JARファイルがインストールされていてビルド環境で使用可能になっている必要があります。該当するJARファイルは次のとおりです。
commons-logging-<version>.jar
hadoop-common-<version>.jar
hadoop-mapreduce-client-core-<version>.jar
hadoop-annotations-<version>.jar
hadoop-yarn-api-<version>.jar
ここに示した<version>
トークンは、ビルド環境にインストールしたHadoopディストリビューションに含まれている対応するJARファイルの特定のバージョン番号を表しています。
たとえば、Clouderaバージョン6.3.0 (cdh6.3.0
)でパッケージ化されているHadoopの3.0.0
バージョンがパーセルによってシステムにインストールされていたとします。このパーセルとは、Clouderaがrpm/deb
パッケージのかわりとして提供するバイナリ・ディストリビューション形式です。また、そのHadoopのバージョンのクラスでは、1.1.3
バージョンのcommons-logging
が使用されているとします。こうした前提に基づいて、CountTableRows
プログラムをコンパイルする場合は、次のコマンド・ラインを入力することになります。
cd /opt/oracle/nosql/apps/kv
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
対象の環境に互換性のある別のHadoopディストリビューションがインストールされている場合は、前述のコマンドライン例で参照しているパスとバージョンを対象のHadoopインストールに適した値に置き換えてください。