我试图通过Conf.set()和Context.getConfiguration()。get()方法在Hadoop中使用全局变量。
然而,这些似乎并没有在我正在使用的Cleanup方法中工作 - 虽然我能够使用Mapper和Reducer中的属性。是奇怪还是正常的行为?
是否还有其他方法可以在MapReduce作业中传播变量的值,以及在hadoop作业的内部清理方法中传播。
答案 0 :(得分:1)
在Job类中设置的参数在清理方法中正确显示。
以下是主要方法
Configuration conf = new Configuration();
conf.set("test", "123");
Job job = new Job(conf);
以下是Mapper #cleanup方法
protected void cleanup(Context context) throws IOException,
InterruptedException {
Configuration conf = context.getConfiguration();
String param = conf.get("test");
System.out.println("clean p--> param = " + param);
}
以上的O / P是
清洁p - > param = 123
再次检查代码。顺便说一下,我在0.21发布时对它进行了测试。