【问题标题】:Does the splits like FileSplit in Hadoop change the blocks?像 Hadoop 中的 FileSplit 这样的拆分会改变块吗?
【发布时间】:2023-03-09 15:18:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: hadoop input-split


    【解决方案1】:

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

    块不会随着拆分而改变。为了准备 Input Split,DataNode 块中的一些数据可能会被复制到其他 DataNode,在该 DataNode 上执行 Map 任务(如果数据在多个数据块之间重叠)

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

    如果 MapTask 正在从 DataNode A / Block-A 获取数据,并且 DataNode A/Block-A 中的部分数据跨越到 DataNode B/Block-B,则 Block-B 中的数据将被复制到 Mapper(DataNode -A)。

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

    How does Hadoop perform input splits?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多