4

MapReduce の論文では、入力ファイルが M 個の入力分割に分割されていると説明されています。Hadoop の HDFS は自動的に 64 MB のブロック (デフォルト) にパーティション分割し、これらのブロックをクラスター内の他のいくつかのノードに複製して、フォールト トレランスを提供します。HDFS でのファイルのこの分割が、前述の MapReduce の論文で説明されている入力分割を意味するかどうかを知りたいです。フォールト トレランスがこの分割の唯一の理由ですか、それとももっと重要な理由がありますか?

また、分散ファイル システムを使用せずにノードのクラスター上で MapReduce を使用している場合 (共通のファイル システムを使用するローカル ディスク上のデータのみ) はどうなりますか? マップ フェーズの前に、ローカル ディスク上の入力ファイルを分割する必要がありますか?

回答ありがとうございます。

4

2 に答える 2

3

欠けている概念をいくつか追加したい(ansは私にとって混乱を招く)



HDFS

ファイルはブロック ( Fault/Node Tolerance ) として保存されます。ブロックサイズ (64MB-128MB) は 64MB です。したがって、ファイルはブロックに分割され、ブロックはクラスター上の異なるノードに保存されます。ブロックは複製係数 (デフォルト = 3) によって複製されています。

Map-Reduce

すでに HDFS に格納されているファイルは、論理的にINPUT-SPLITSに分割されます。分割サイズはユーザーが設定できます

Property name           Type   Default value

mapred.min.split.size   int     1
mapred.max.split.sizea  long    Long.MAX_VALUE.

そして、分割サイズは次の式で計算されます。

max(最小サイズ、最小(最大サイズ、ブロックサイズ))

注: :分割は論理的です



今すぐあなたの質問に答えてください

 I'd like to know if this partitioning of files in HDFS means the input splitting described in mentioned MapReduce papers. 

いいえ、HDFS ブロックと Map-Reduce 分割がまったく同じというわけではありません。

Is fault tolerance single reason of this splitting or are there more important reasons?

いいえ、分散コンピューティングが理由になります。

And what if I have MapReduce over cluster of nodes without distributed file system (data only on local disks with common file sytem)? Do I need to split input files on local disk before map phase?

あなたの場合、私は推測します、はい、Map Phase の入力ファイルを分割する必要があります。また、Reduce Phase の中間出力 (Mapper から) を分割する必要があります。その他の問題: データの一貫性、フォールト トレランス、データ損失 (hadoop では =1%)。

Map-Reduce は分散コンピューティング用に作成されているため、非分散環境で Map-Reduce を使用しても役に立ちません。

ありがとう

于 2012-10-16T09:17:42.490 に答える
1
I'd like to know if this partitioning of files in HDFS means the input splitting described in mentioned MapReduce papers.

いいえ、MapReduce での入力分割は、reduce フェーズ中に複数のプロセッサの計算能力を利用するためのものです。マッパーは大量のデータを取り込み、データを論理パーティションに分割します (ほとんどの場合、プログラマーによるマッパーのカスタム実装によって指定されます)。このデータは、レデューサーと呼ばれる独立したプロセスがデータ処理を実行する個々のノードに送られ、最終的に結果が照合されます。

Is fault tolerance single reason of this splitting or are there more important reasons?

いいえ、それだけが理由ではありません。これをファイル システム レベルのブロック サイズと比較して、データのチャンクへの転送、ブロック単位でのデータの圧縮、および I/O バッファーの割り当てを確実に行うことができます。

于 2012-10-15T13:49:44.920 に答える