gpt4 book ai didi

hadoop - 如何在单个映射器中处理文件

转载 作者:可可西里 更新时间:2023-11-01 16:55:31 25 4
gpt4 key购买 nike

我有 3 个文件,每个文件大小为 50 MB,并且想在 block 大小为 256Mb 的单个 Mapper 中进行处理。怎么做?我需要关注哪些属性?如果我将 reducer 的数量设置为 5,那么输出会是什么?它将存储在哪里?

最佳答案

您可以使用 CombineFileInputFormat() 将小文件组合成一个 split,如果您愿意,可以在代码中指定 maxSplitSize

如果指定了 maxSplitSize,则同一节点上的 block 将组合形成单个拆分。剩下的 block 然后与同一机架中的其他 block 组合。如果未指定 maxSplitSize,则来自同一机架的 block 将合并为一个拆分;不会尝试创建节点本地拆分。如果 maxSplitSize 等于 block 大小,则此类类似于 Hadoop 中的默认拆分行为:每个 block 都是本地处理的拆分。

来源: http://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/mapred/lib/CombineFileInputFormat.html

正如我们所知,Mapper 是根据 block 或输入拆分 的数量分配的。如果您将文件合并为一个部分,将分配一个映射器来处理您的数据。

请引用下面有用的链接来实现它。

http://www.idryman.org/blog/2013/09/22/process-small-files-on-hadoop-using-combinefileinputformat-1/

http://blog.yetitrails.com/2011/04/dealing-with-lots-of-small-files-in.html

http://hadooped.blogspot.in/2013/09/combinefileinputformat-in-java-mapreduce.html

关于hadoop - 如何在单个映射器中处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443512/

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