像Hadoop中的FileSplit这样的拆分会改变块吗?

像Hadoop中的FileSplit这样的拆分会改变块吗?,hadoop,input-split,Hadoop,Input Split,第一个问题:我想知道拆分是否以任何方式改变了块(即改变大小、将块移动到另一个位置、创建新块等) 第二个问题:我认为拆分不会改变块,但它指定了每个MapTask应该存在的位置,并在集群上运行,以获取数据或机架感知的位置,因为DataNodes已经在运行,并且具有块,所以我认为拆分会告诉Hadoop在包含数据的节点旁边运行MapTask数据。注意:在InputSplit中有一个位置/主机,我认为是用于此目的的如果我错了,请纠正我 第三个问题:最初在实际执行任务之前,块会移动到MapTask所在的位置

第一个问题:我想知道拆分是否以任何方式改变了块(即改变大小、将块移动到另一个位置、创建新块等)

第二个问题:我认为拆分不会改变块,但它指定了每个MapTask应该存在的位置,并在集群上运行,以获取数据或机架感知的位置,因为DataNodes已经在运行,并且具有块,所以我认为拆分会告诉Hadoop在包含数据的节点旁边运行MapTask数据。注意:在InputSplit中有一个位置/主机,我认为是用于此目的的如果我错了,请纠正我

第三个问题:最初在实际执行任务之前,块会移动到MapTask所在的位置还是MapTask会移动到块所在的位置(即数据节点的位置)

关于第一个和第二个问题:

块不会随着拆分而改变。为了准备输入拆分,可以将来自DataNode块的一些数据复制到执行映射任务的其他DataNode(如果数据在多个数据块之间重叠)

第三个问题:最初在实际执行任务之前,块会移动到MapTask所在的位置还是MapTask会移动到块所在的位置(即DataNode的位置)

如果映射任务正在从DataNode a/Block-a获取数据,并且DataNode a/Block-a中的部分数据跨越到DataNode B/Block-B,则Block-B中的数据将复制到映射器(DataNode-a)

请参阅以下问题以更好地理解输入拆分和数据块:

关于第一个和第二个问题:

块不会随着拆分而改变。为了准备输入拆分,可以将来自DataNode块的一些数据复制到执行映射任务的其他DataNode(如果数据在多个数据块之间重叠)

第三个问题:最初在实际执行任务之前,块会移动到MapTask所在的位置还是MapTask会移动到块所在的位置(即DataNode的位置)

如果映射任务正在从DataNode a/Block-a获取数据,并且DataNode a/Block-a中的部分数据跨越到DataNode B/Block-B,则Block-B中的数据将复制到映射器(DataNode-a)

请参阅以下问题以更好地理解输入拆分和数据块: