java - 在 Mapper 类中执行 Reducer 操作

标签 java hadoop mapreduce

在我的 mapper 类中,我逐行读取文件并在每行上执行一些字符串操作(即从字符串中删除特殊字符),然后在 reducer 中将每行存储在一个新文件中。

基本上我的 reducer 只创建文件并将每一行写入新文件,所以我的映射器有可能创建文件而不是将数据传递给 reducer。这意味着我不想要 reducer 并在映射器中执行它的操作。 我对 Mapreduce 了解不多,所以任何类型的帮助都是可观的

最佳答案

是的,你想要的是很有可能的,你需要的是一个只有 map 的工作。即只有 mapper 而没有 reducer 的作业。

实现它的方法是在驱动程序类中将 reducer 的数量设置为 0。

job.setNumReduceTasks(0);

可以找到有关此主题的更详细的博客 here

为每个输入行生成一个文件考虑直接从您的映射器使用 hdfs api,即 FileSystemFileStatus

关于java - 在 Mapper 类中执行 Reducer 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23522013/

相关文章:

hadoop - 失败 : semanticexception the current builtin authoization in hive is incomplete and disabled

hadoop - java.io.IOException : error=2, Hadoop 流中没有这样的文件或目录错误

java - 上传到Hadoop集群时依赖版本不正确

eclipse - 在Hadoop群集上运行wordcount的速度比在Eclipse上慢

java - 检查 ParseUser 中的电子邮件是否已验证代码?

java - 包含多个根元素的 XML 文件

hadoop - 提交 Hadoop 作业

hadoop - 从其他 PC 下载 Hadoop 数据

java - 将多个对象放入数组列表中并绘制它们

java - 无法解决 selenium 驱动程序的导入问题