Hadoop0.23をインストールしたときに稼動確認としてWordCountや円周率算出サンプル(つまりMapReduceプログラム)を動かしたけど、そのときはリソースマネージャーやノードマネージャーを起動していなかった。つまりYARNの環境では動いていなかった。
やはりそれはローカルモードで動いていたようだ。という訳で、MapReduceプログラムをYARN環境で動かす方法を発見した。
ついでにYARN環境でMapReduceプログラムを動かしているクラスを少しだけ追ってみた。
JobTrackerに相当するアプリケーションマスターはMRAppMasterクラス、コンテナープログラム(MapタスクやReduceタスクを実行する)はYarnChildというクラスのようだ。
(今まで自分の説明が間違っていたような気がするが、タスクを起動するTaskTrackerに相当するのは、コンテナーを起動するNodeManagerのようだ)
YarnChildのmain()の引数にホスト名やポート番号を渡して通信に使っているようなので、アプリマスターを自作する場合、アプリマスターとコンテナーとの通信はやはり自前で行う必要があるようだ(苦笑)