1

いくつかの map/reduce ジョブをデバッグするために、基本的に読み取る単純な UNIX コマンドを使用してそれらをテストすることがよくあります

cat data/* | mapper | sort | reduce > out

現在、すべてが正常に機能していますが、コマンドで実際に何が起こるのか疑問に思っていますmap | sort

より正確に :

  • RAM / CPUがどのようにロードされるか誰かが知っていますsortか?

  • sortコマンドはオンザフライでデータを並べ替えてますか、それともマップ ジョブが完了するのを待ちますか (マッパーは STDOUT を使用し、データを出力するために計算の終了を待たないことに注意してください)。

  • かなり大量の入力データを使用しても、期待どおりに RAM に負荷がかからないようです (むしろ、CPU のピークを観察しますが、これを非常に正確に測定しているわけではありません)。プロセスが出力情報量として使用する RAM を減らすことは可能ですか?

あなたの答えをありがとう:)

4

1 に答える 1

3

Linux では、sortマージ ソート アルゴリズムを使用します ( http://en.wikipedia.org/wiki/Sort_(Unix)から)。マージソートは、一部のパーツをディスク上の一時ファイルに保存できます (の場合は保存されますsort)。そのため、プロセスは妥当な量の RAM を使用します (オプションで使用する RAM の量を指定でき--buffer-sizeます)。

于 2013-05-16T09:47:05.253 に答える