hadoop - 如何收集 mapreduce 作业的输出?

标签 hadoop mapreduce bigdata

我尝试用 mapreduce 编写一个简单的字数统计程序。我的 mapreduce 程序只将输出写入文件。但我不希望我的输出写入文件。我想收集该信息或输出(如 java 集合)以用于我的程序区域的其余部分。

例如,如果我在配置单元上提交任何查询,它会返回一个结果集对象,但在内部我的查询将转换为 mapreduce 程序,并在完成作业后返回结果集对象。与其他 mapreduce 程序不同,它不会将结果写入文件系统。

那么我如何收集输出或者如何在 reducer 或 mapper 中准备我自己的对象并在 java 程序的其他区域收集该对象?我不希望将输出写入文件。

最佳答案

有很多方法可以处理 Hadoop M-R 框架的输出。用户描述 M-R 作业的主要界面是 JobConf类(class) 你会发现

getOutputFormat()

setOutputFormat()

您将/可以描述不同结果集合的方法,例如 DB (HBase) 存储。需要记住的是,M-R 作业处理大量数据,除非您拥有完善的分布式对象架构,否则在 Java 内存中将这些数据作为对象进行管理会很麻烦。

或者您可以提供您的实际要求。

希望对您有所帮助, 帕特

关于hadoop - 如何收集 mapreduce 作业的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22791088/

相关文章:

scala - 使用 Java 类的 Spark Scala 数据集

字数统计旁边的 Hadoop 示例

hadoop - 使用Map Reduce代码处理失败记录的异常处理…需要帮助

java - 尝试理解基本的 WordCount MapReduce 示例

database - 存储科学数据

hadoop - 为什么oozie需要数据库?

csv - 自动将 csv 数据上传到 Hadoop 中的表中

java - MapReduce:如何将 HashMap 传递给映射器

mongodb - 更改关键文档 mongodb 聚合

hadoop - 如何在资源有限的笔记本电脑上安装 pyspark 和 spark 以供学习?