gpt4 book ai didi

hadoop - getSplits() 方法究竟返回什么?

转载 作者:可可西里 更新时间:2023-11-01 15:33:36 25 4
gpt4 key购买 nike

getSplits() 方法究竟返回什么?根据 apache 文档,它返回 InputSplit 数组,这是什么意思?

它是否返回映射器将在其上运行的文件字节 block ??

  1. 假设我们有 3 个文件,每个文件大小为 50MB,那么它返回 [0] 处的 64MB(50MB+14MB 第二个文件)、64MB(36MB 第二个 + 28MB 第三个)、36MB(第三个文件)和每个都由 3 个不同的映射器处理?

  2. 如果我们有一个 120MB 的大文件,那么它会为同一文件返回 64MB 的 block 吗?

我什至不确定我的要求是否合乎逻辑,我是 Hadoop 堆栈的新手。

最佳答案

方法 getSplits() 返回拆分 - 关于文件部分的元数据。每个映射处理一个拆分。

如果您的文件很大,它会被分成与 HDFS block 大小相同的部分(至少 64MB)。在您的第二个示例中,它将是 64MB 和 56MB 的两个拆分。虽然,现在推荐的 block 大小是 128MB 甚至 256MB。

如果文件小于 block 大小,它将在单独的拆分中。在您的第一个示例中,您将有三个 50MB 的分割。如果你想将它们组合起来并在一个 Mapper 中处理,你可以使用 CombineFileInputFormat (example)。

关于hadoop - getSplits() 方法究竟返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28929719/

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