【问题标题】:Hadoop Wordcount Example with multiple files and kill mappers in it具有多个文件并杀死其中的映射器的 Hadoop Wordcount 示例
【发布时间】:2026-01-29 02:35:02
【问题描述】:

我有 3 个输入文件:file1.txt、file2.txt、file3.txt。 file1.txt 包含一些错误数据。当我在 MapReduce 作业中提交这些文件时,将创建 3 个映射器。 现在我需要杀死包含名为 file1.txt 的错误文件的映射器。杀死映射器后,我希望从映射器中丢弃错误文件并将其存储在 hdfs 中。 我怎样才能杀死映射器并丢弃文件??
如果我杀死了映射器,剩下的映射器应该完成他们的过程并且整个工作应该完成。请帮忙

【问题讨论】:

  • 你会通过杀死映射器来实现什么?另外,“我希望从映射器中丢弃错误文件并将其存储在 hdfs 中”是什么意思?
  • 假设错误文件包含“Hello World Bye World”。因此,如果令牌包含 "Bye" ,我希望不解析整个文件,并且应该杀死包含该文件的映射器。 “再见”之前或之后的单词不应该被解析,映射器应该被杀死。休息映射器应该继续他们的任务并且工作应该完成

标签: java hadoop mapreduce


【解决方案1】:

这可能不是一种选择方法。将元组 (K, V) 存储在映射内存中,如果不满足无效条件,则在最后发出它们。

【讨论】:

  • 我的输入文件很大,我无法保存到内存中。
  • @user2991007:如果您的输入文件大小(例如 file1.txt)大于块大小,除非您使用 customInputFormat,否则您不会为该文件获得多个地图任务?
  • @user2991007,你能提供file1.txt和HDFS块的大小吗?