想補充一些缺失的概念(ANS是混淆對我來說)
HDFS
的文件存儲爲塊(故障/節點公差 )。塊大小(64MB-128MB)64MB。所以文件被分成塊,塊被存儲在簇上的不同節點上。一個塊正在被複制因子複製(默認值= 3)。
的map-reduce
已經被存儲在HDFS文件在邏輯上劃分爲INPUT-SPLITS。
MAX(的minimumSize,分鐘(MAXIMUMSIZE,BLOCKSIZE)): 的分割尺寸可以由用戶
Property name Type Default value
mapred.min.split.size int 1
mapred.max.split.sizea long Long.MAX_VALUE.
然後分割尺寸由下式計算來設定
NOTE::分割是邏輯
希望能答您的問題現在
I'd like to know if this partitioning of files in HDFS means the input splitting described in mentioned MapReduce papers.
不,不是在所有的HDFS塊和地圖,減少分割都是同樣的事情。
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?
在你的情況,我想,是的,你將不得不拆分輸入文件映射階段,還你將不得不拆分中間輸出(從映射器),用於簡化階段。 其他問題:數據的一致性,容錯性,數據丟失(在hadoop中= 1%)。
Map-Reduce用於分佈式計算,因此在非分佈式環境中使用Map-Reduce並不有用。
感謝
感謝您的詳細解答。我已經瞭解了我的大部分問題,但是對於我最後一個問題的答案仍然不清楚。也許有一個問題我仍然看不到。我理解分裂問題,所以我可以將最後一個問題改爲:「可以在沒有分佈式文件系統的情況下通過節點集羣進行MapReduce?」我的意思是我有20個節點的集羣,具有相同的數據方案,但這些數據不存儲在具有分佈式文件系統(HDFS,GFS)的本地磁盤上,而是存儲在帶有NTFS的本地磁盤上(或ext3或NTFS或任何其他數據分佈式FS)。 – babusek
我不談論Hadoop,而是談論一般的MapReduce模型。 – babusek
我知道,在前面的評論中描述的示例集羣中將不會有自動複製(如果它沒有實現)和分佈式文件系統的其他優點,但我想知道是否還有其他(對我來說未知的)問題在描述的集羣上有MapReduce。 – babusek