2017-08-04 16 views
1

のHadoopのMapReduceの一部がストリーミングとして、我々は以下のコマンドを実行するとのHadoopストリーミングの仕組み

Hadoopのジャー/usr/lib/hadoop-mapreduce/hadoop-streamingxxxx.jar -input cities.txt -output streamout -mapper/bin/cat -reducer 'grep -i CA'

1)Javaベースのmapreduceジョブはバックグラウンドで動作していますか?

答えて

0

正しいです、それはシーンの裏で実行されているjavaコードです。MapReduceジョブはStreamJobによってトリガされ、Mapperはjavaクラスでない場合に指定されたコマンドのラッパーに過ぎません。あなたはこのarticle

マッパー両方と減速であなたのコマンドの内部を見つけることができます

0

は、標準入力(ラインごと)からの入力を読み込み、標準出力に出力を発する実行可能です。ユーティリティはマップ/リデュースジョブを作成し、適切なクラスタにジョブを送信し、完了するまでジョブの進行状況を監視します。

マッパーに実行ファイルが指定されている場合、マッパーが初期化されると、各マッパータスクは別個のプロセスとして実行可能ファイルを起動します。マッパータスクが実行されると、入力をラインに変換し、ラインをプロセスの標準に送ります。その間、マッパーは、プロセスの標準出力からライン指向の出力を収集し、各ラインをマッパーの出力として収集されるキーと値のペアに変換します。

実行可能ファイルがレデューサーに指定されると、各レデューサータスクは実行可能ファイルを別のプロセスとして起動し、レデューサーが初期化されます。レデューサータスクが実行されると、入力キーと値のペアをラインに変換し、ラインをプロセスの標準入力に送ります。その間、レデューサーは、プロセスの標準出力からライン指向の出力を収集し、各ラインをキー/値ペアに変換し、それがレデューサーの出力として収集されます。