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ポリシーが必要です。