gpt4 book ai didi

Hadoop 输入拆分大小与 block 大小

转载 作者:可可西里 更新时间:2023-11-01 14:08:29 25 4
gpt4 key购买 nike

我正在阅读 hadoop 权威指南,其中清楚地解释了输入拆分。就像

Input splits doesn’t contain actual data, rather it has the storage locations to data on HDFS

Usually,Size of Input split is same as block size

1) 假设一个 64MB 的 block 在节点 A 上并在其他 2 个节点(B、C)之间复制,并且 map-reduce 程序的输入分割大小为 64MB,这个分割会吗只有节点 A 的位置?或者它是否具有所有三个节点 A、b、C 的位置?

2) 由于数据对于所有三个节点都是本地的,因此框架如何决定(选择)一个 maptask 在特定节点上运行?

3)如果 Input Split 大小大于或小于 block 大小,如何处理?

最佳答案

  • @user1668782 的回答很好地解释了这个问题,我将尝试对其进行图形描述。

  • 假设我们有一个 400MB 的文件,其中包含 4 条记录(例如:400MB 的 csv 文件,它有 4行,每行 100MB)

enter image description here

  • 如果 HDFS Block Size 配置为 128MB,那么 4 条记录将不会均匀分布在 block 中。它看起来像这样。

enter image description here

  • block 1 包含整个第一条记录和第二条记录的 28MB block 。
  • 如果要在 block 1 上运行映射器,则映射器无法处理,因为它没有完整的第二条记录。
  • 这正是输入拆分 解决的问题。 输入拆分遵循逻辑记录边界。

  • 假设输入拆分大小为200MB

enter image description here

  • 因此,输入拆分 1 应该同时包含记录 1 和记录 2。输入拆分 2 不会从记录 2 开始,因为记录 2 已分配给输入拆分 1。输入拆分 2 将从记录 3 开始。

  • 这就是为什么输入拆分只是数据的逻辑 block 。它以 block 为单位指向开始和结束位置。

希望这对您有所帮助。

关于Hadoop 输入拆分大小与 block 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17727468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com