【问题标题】:InputSplits in mapreducemapreduce 中的 InputSplits
【发布时间】:2017-11-17 16:14:50
【问题描述】:

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

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

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

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

提前感谢您的帮助!

【问题讨论】:

    标签: hadoop mapreduce input-split


    【解决方案1】:

    让我们从 FileInputFormat 的基础开始

    1. FileInputFormat 是 Abstract,因此您不能直接使用它。 “公共抽象类 FileInputFormat”

    2. 假设您使用像 TextInputFormat 这样的 InputFormat(TextInputFormat 类扩展 FileInputFormat)并回答您的问题。

    3. FileInputFormat 中的 splitMethod 逻辑适用于输入路径中的每个文件,因此您将在 MapReduce 作业中进行“N”个拆分(案例 1)。

    4. 对于 Case2,您仍然有 N 个 splits ,因为您刚刚通知 inputformat 不要拆分单个文件。但是对于每个文件,将其视为一个拆分。

    5. 对于案例 3,您仍将进行 N 次拆分,因为文件没有被拆分。请记住,拆分逻辑应用于单个文件,而不是一起考虑。

    6. 如果您想在拆分逻辑期间合并输入文件,则使用组合输入格式。

    【讨论】:

    • 谢谢高塔姆。第三种情况,如果isSplitable返回true,那么我们会有N次拆分呢?
    • 请投票以表示感谢。案例 1:N 案例 2:N 案例 3:N +1
    • 你好高塔姆。我赞成你的回答,但它没有出现,因为我的声誉为 2 :( 。不过我非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 2016-02-10
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多