想添加一些缺失的概念(ans 让我感到困惑)
高密度文件系统
文件存储为块(故障/节点容限)。块大小(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.
然后通过以下公式计算拆分大小:
最大(最小尺寸,最小(最大尺寸,块尺寸))
注意::拆分是合乎逻辑的
希望现在回答您的问题
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,并且您还必须将中间输出(来自 Mapper)拆分为 Reduce Phase。其他问题:数据一致性、容错性、数据丢失(在 hadoop 中 =1%)。
Map-Reduce 是为分布式计算而设计的,因此在非分布式环境中使用 Map-Reduce 是没有用的。
谢谢