欠けている概念をいくつか追加したい(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 を使用しても役に立ちません。
ありがとう