Hadoop 将变量从 reducer 传递到 main

标签 hadoop mapreduce

我正在研究 map 缩减程序。我正在尝试使用 setLong 方法将参数传递给 reduce 方法中的上下文配置,然后在完成后在 main 中读取它们

在 reducer 中:

context.getConfiguration().setLong(key, someLong);

在作业完成后的主要内容中,我尝试使用:

long val = job.getConfiguration().getLong(key, -1);

但我总是得到-1。

当我尝试读取 reducer 内部时,我看到值已设置并且我得到了正确的答案。

我错过了什么吗?

谢谢

最佳答案

您可以使用计数器:在 reducer 中设置和更新它们的值,然后您可以在您的客户端应用程序(主)中访问它们。

关于Hadoop 将变量从 reducer 传递到 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38410851/

相关文章:

hadoop - HDFS block 分布可视化

java - 用于MapR/Hadoop/Hive的类路径

java - Hadoop一次读取2个文件(一个头文件和一个数据文件)

hadoop - 为什么我接下来不能处理我的hadoop程序?

hadoop - Hive - 内存不足异常 - Java 堆空间

hadoop - 即使我设置了 setMapOutputKey 类,但 map 中的键类型不匹配

hadoop - 是否可以使用 Hadoop 在同一份工作中同时进行 Top Ten 和 JOIN?

java - 使用 ProcessBuilder 从 java 程序运行 yarn 作业给出文件不存在错误

hadoop - 跳过失败的 map 作业

python - 以文本文件和 oracle 表为源的 Hive、Pig 或 Python Mapreduce 哪个能提供最佳性能?