gpt4 book ai didi

hadoop - 如何拆分输入集以获得更好的 Hadoop 平衡?

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

我有一个分层目录,每个目录中有很多文件,每个文本文件中有很多 URL 字符串。我想下载 Hadoop 中所有文件中的所有 URL,以实现更好的平衡。

例如,如果我有 1+5 个节点的 Hadoop 集群和 5 个 URL。那么,是 5 个 URL 合一个文件还是 1 个 URL 每个文件(然后得到 5 个文件)作为输入获取更好的平衡?

我认为 Hadoop 默认会将输入集拆分为 64M block 以仅在单个节点上运行,无法运行所有 5 个从属节点。

感谢您的回答!

最佳答案

如果您没有对每个 URL 进行计算密集型工作,并且您的文件小于 64 MB,那么您最好只在一个节点上运行一个映射器。在那种情况下,我会在一个文件方法中使用所有 URL。

最好有更大的文件,这样每个映射器都有足够的工作要做。如果您的文件非常小,则合并它们以使总数接近 64 MB 标记。这也将允许更多的数据存储在 HDFS 中,因为每个文件占用 Namenode 上的 RAM 来保存元数据,而 RAM 是有限的,所以如果你使用较少数量的文件,你可以将更多的数据放入集群和你的 Namenode将使用更少的 RAM。

您也可以尝试使用 CombineFileInputFormat方法

关于hadoop - 如何拆分输入集以获得更好的 Hadoop 平衡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9518505/

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