Hadoop将变量从reducer传递到main
我正在做一个地图缩小程序。我试图使用setLong方法将参数传递给reduce方法中的上下文配置,然后在完成后在main中读取它们 在减速器中:Hadoop将变量从reducer传递到main,hadoop,mapreduce,Hadoop,Mapreduce,我正在做一个地图缩小程序。我试图使用setLong方法将参数传递给reduce方法中的上下文配置,然后在完成后在main中读取它们 在减速器中: context.getConfiguration().setLong(key, someLong); 在工作完成后,我主要尝试使用以下方法阅读: long val = job.getConfiguration().getLong(key, -1); 但我总是得到-1 当我尝试读取减速器内部的读数时,我看到设置了该值,并且得到了正确的答案 我错过什么
context.getConfiguration().setLong(key, someLong);
在工作完成后,我主要尝试使用以下方法阅读:
long val = job.getConfiguration().getLong(key, -1);
但我总是得到-1
当我尝试读取减速器内部的读数时,我看到设置了该值,并且得到了正确的答案
我错过什么了吗
谢谢您可以将配置从main转换为map任务或reduce任务,但无法将其转换回。配置转换的过程是:
- MapReduce客户端会根据您在main上设置的配置生成一个配置文件,该文件将被推送到仅由作业共享的HDFS路径。该文件将是只读的
- 启动map或reduce任务时,将从HDFS路径提取配置文件,并根据该文件初始化配置李>
如果要将配置翻译回,可以使用另一个HDFS文件:在Reducer上更新该文件,并在作业完成后读取它您可以将配置从main翻译回map任务或reduce任务,但无法将其翻译回。配置转换的过程是:
- MapReduce客户端会根据您在main上设置的配置生成一个配置文件,该文件将被推送到仅由作业共享的HDFS路径。该文件将是只读的
- 启动map或reduce任务时,将从HDFS路径提取配置文件,并根据该文件初始化配置李>
如果要将配置转换回,可以使用另一个HDFS文件:在Reducer上更新该文件,并在作业完成后读取它您可以使用计数器:在Reducer中设置并更新其值,然后可以在客户端应用程序(Main)中访问它们.您可以使用计数器:在减缩器中设置并更新计数器的值,然后您可以在客户端应用程序(Main)中访问它们