MapReduceアプリケーションの実装
MapReduceアプリケーションを実装します。
アプリケーションJARの作成
プロジェクト・ルート・フォルダからmvn clean package
を実行して、ターゲット・フォルダにアプリケーションJARを構築します。たとえば、wordcountjava-1.0-SNAPSHOT.jar
です。
mvn clean package
このコマンドは、以前のビルド・アーティファクトをすべてクリーンアップし、まだインストールされていない依存関係をダウンロードしてから、アプリケーションをビルドおよびパッケージ化します。
コマンドが終了すると、wordcountjava/target
ディレクトリにはwordcountjava-1.0-SNAPSHOT.jar
という名前のファイルが含まれます。
ノート
wordcountjava-1.0-SNAPSHOT.jar
ファイルはuberjarで、WordCountジョブのみでなく、実行時にジョブに必要な依存関係も含まれます。MapReduceアプリケーションJARの実行
JARを任意のノードにコピーします。例:
- yarn jar /tmp/wordcountjava-1.0-SNAPSHOT.jar org.apache.hadoop.examples.WordCount /example/data/input.txt /example/data/wordcountout
パラメータ:
/example/data/input.txt
: 入力テキスト・ファイルのHDFSパス/example/data/wordcountout
: 結果のHDFSパス(リデューサの出力)
出力例:
>> hdfs dfs -cat /example/data/wordcountout/*
zeal 1
zelus 1
zenith 2
ノート
wordcountjava-1.0-SNAPSHOT.jar
ファイルは、maven-shade-pluginを介してビルドされる場合のfat JARです。または、オプションとして-libjars
を使用して、ジョブ・クラス・パスに追加のJARを指定します。セキュアなクラスタでは、ジョブを発行する前に、kinit
および適切なRangerポリシーが必要です。