Using DistributedCache in Hadoop by Yavcular
在上面的链接中,描述了如何以易于理解的方式在Hadoop中使用DistributedCache。但问题是,当我编译代码时,我收到以下错误:
non-static method loadIdUrlMapping(org.apache.hadoop.mapreduce.Mapper.Context) cannot be referenced from a static context
loadIdUrlMapping(context);
解决方法是什么?我无法将Mapper类更改为非静态,当我将loadIdUrlMapping
方法签名更改为static时,我无法访问idmap
HashSet
答案 0 :(得分:0)
您需要发布您的代码版本以确保,但我想您有一个名为cacheItemset的方法,它被定义为静态范围:
public static void cacheItemset(Context) {
loadIdUrlMapping(context);
}
loadUrlMapping未定义为静态方法,因此您收到编译错误。
如果ReplacementMapper
类的版本在它自己的类文件中,那么在类声明中不需要static关键字(仅当ReplacementMapper类是另一个类的内部类时才需要这个) )。