gpt4 book ai didi

Hadoop DistributedCache 无法报告状态

转载 作者:可可西里 更新时间:2023-11-01 14:59:46 26 4
gpt4 key购买 nike

在 Hadoop 作业中,我正在映射多个 XML 文件并为每个元素过滤 ID (from < id>-tags) .因为我想将作业限制在一组特定的 ID 中,所以我读入了一个大文件(2.7 GB 中大约有 2.5 亿行,每行只有一个整数作为 ID)。所以我使用了DistributedCache,解析setup()中的文件带有 BufferedReader 的 Mapper 方法,并将 ID 保存到 HashSet。

现在一开始工作,我得到了无数

Task attempt_201201112322_0110_m_000000_1 failed to report status. Killing!

在执行任何 map 作业之前。

该集群由 40 个节点组成,并且自 DistributedCache 的文件以来在执行作业的任何任务之前被复制到从属节点,我假设失败是由大 HashSet 引起的.我已经增加了mapred.task.timeout到 2000 年代。当然我可以再增加时间,但实际上这个时间应该足够了,不是吗?

DistributedCache's曾经是一种“有效地分发大型只读文件”的方法,我想知道是什么原因导致这里失败,是否有另一种方法将相关 ID 传递给每个映射作业?

最佳答案

您能否在设置方法中添加一些调试 printlns 以检查此方法是否超时(记录进入和退出时间)?

您可能还想研究使用 BloomFilter 来保存 ID。您可以将这些值存储在一个 50MB 的布隆过滤器中,误报率很高 (~0.5%),然后运行辅助作业来执行对实际引用文件进行分区检查。

关于Hadoop DistributedCache 无法报告状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9292920/

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