2016-10-13 8 views
0

Sparkでは、いつでもデータをメモリ内に保持できますが、Hadoop MapReduceのMapステージとReduceステージの間でデータが保持される場所は不思議でした。 HDFS、ディスクまたはRAMに保存されていますか?つまり、データがシャッフルされているとき(マップ/コンバイラの後でReduceの前に)、それはどこに保存されていますか?Hadoop MapReduceのMap/Combine後、Reduceステージ前のデータはどこに保存されますか?

+0

が重複する可能性を通常のMap-Reduceアプリケーションですか?](http://stackoverflow.com/questions/8603435/in-hadoop-where-does-the-framework-save-the-output-of-the-map-task-in-a -normal-m) – MetallicPriest

答えて

2

私はHadoop Mapreduceに関する知識があります。

1)地図タスクの出力は、ローカルディスクに書き込まれますが。()

2)地図/コンバイナの後と前にタスクを削減リデューサータスクの出力は、HDFSに書かれています。

のMapReduceジョブのみマッパータスク出力がHDFS

希望に書かれている場合は、このことができます!!! ...フレームワークはでマップタスクの出力を保存しないのHadoopでは[の

+0

ローカルディスクまたはHDFSにありますか? – pythonic

+1

ローカルディスク(Map/Combinerの後、Reduceタスクの前)では、http://ybhavesh.blogspot.in/2015/12/poc-sensex-log-data-processing-pdf-file.htmlにMapreduceの例がほとんど見つかりません – Bhavesh

1

通常のHadoop MapReduceでは、各ステップ間のジョブ出力データは、次の手順を開始する前に分散ファイルシステム(HDFS)に格納する必要があります。したがって、減速機はそこからデータを取得しなければならず、これによりディスク/クラスタオーバーヘッド時間が追加されます。

複雑性の高い操作を実行する場合はオーバーヘッドがかなり大きくなります。異なるマップ/ Reduceジョブを順次(Hadoopで)スケジューリングする必要があり、HDFSでデータを保存して取得します。

スパークは、可能であれば、これらの部分的な結果をメモリに保存して大幅に改善します。

1

すべての中間データはHDFSディスクに保存されます。すべてのマップ/リダクション操作は単一ノードで行われないためです。したがって、他のノードでは簡単にデータにアクセス(処理されたデータ)、すべての中間データはHDFSディスクに格納されます。

操作に必要なデータのみがメモリに取り込まれます。

関連する問題