像hadoop中的filesplit这样的拆分会改变块吗?

06odsfpq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(355)

第一个问题:我想知道拆分是否以任何方式改变了块(即改变大小、将块移到另一个位置、创建新块……)。
第二个问题:我认为split不会改变块,但是它指定了每个maptask应该存在的位置,并在集群上运行以获得数据的位置或机架感知,因为datanodes已经在运行并且拥有块,所以我认为split会告诉hadoop在包含数据的节点旁边运行maptask。注意:在inputsplit中有一个位置/主机。如果我错了,请纠正我
第三个问题:在实际执行任务之前,块会移动到maptask所在的位置还是maptask会移动到块所在的位置(即datanode的位置)?

7gcisfzg

7gcisfzg1#

对于第一个和第二个问题:
块不会随着分裂而改变。为了准备输入拆分,可以将datanode块中的一些数据复制到另一个datanode,在该datanode上执行Map任务(如果数据在多个数据块之间重叠)
第三个问题:在实际执行任务之前,块会移动到maptask所在的位置还是maptask会移动到块所在的位置(即datanode的位置)?
如果一个Map任务正在从datanode a/block-a获取数据,并且datanode a/block-a中的部分数据跨越到datanode b/block-b,那么block-b中的数据将被复制到Map器(datanode-a)。
请参阅以下问题以更好地了解输入拆分和数据块:
hadoop如何执行输入拆分?

相关问题