gpt4 book ai didi

hadoop - mapreduce 中的 InputSplits

转载 作者:行者123 更新时间:2023-12-02 20:47:29 25 4
gpt4 key购买 nike

我刚刚开始学习 Mapreduce 并且有一些我想回答的问题。开始:

1)案例1:FileInputFormat作为输入格式。具有多个要处理的文件的目录是输入路径。如果我有 n 个文件,所有文件小于 hadoop 集群中的 block 大小, map reduce Job 计算了多少拆分?

2) 我在一个名为 MyFileInputFormat 的类中扩展 FileInputFormat,并重写 isSplitable 以始终返回 false。输入配置同上。 在这种情况下我会得到 n 次拆分吗?

3)如果说n个文件中的1个文件比集群的 block 大小略大在第二种情况下我会得到 n+1 次拆分吗?

在此先感谢您的帮助!

最佳答案

让我们从 FileInputFormat 的基础开始

  • FileInputFormat 是 Abstract 因此您不能直接使用它。
    "公共(public)抽象类 FileInputFormat"
  • 假设您使用像 TextInputFormat 之类的 InputFormat(TextInputFormat 类扩展 FileInputFormat)并回答您的问题。
  • FileInputFormat 中的 splitMethod 逻辑适用于输入路径中的每个文件,因此您将在 MapReduce 作业中进行“N”个拆分(案例 1)。
  • 对于 Case2,您仍然有 N splits ,因为您刚刚通知 inputformat 不要拆分单个文件。但是对于每个文件,将其视为一个拆分。
  • 对于案例 3,您仍然会有 N 个拆分,因为文件没有被拆分。请记住,拆分逻辑应用于单个文件,而不是一起考虑。
  • 如果您想在拆分逻辑期间合并输入文件,则使用 CombineInputFormat。
  • 关于hadoop - mapreduce 中的 InputSplits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47344734/

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