编程语言
首页 > 编程语言> > java – 所有地图任务的Hadoop缓存文件

java – 所有地图任务的Hadoop缓存文件

作者:互联网

我的map函数必须为每个输入读取一个文件.该文件根本没有变化,仅供阅读.分布式缓存可能对我有很多帮助,但我无法找到使用它的方法.我需要覆盖的public void configure(JobConf conf)函数,我认为已弃用.好的JobConf肯定已被弃用.所有DistributedCache教程都使用不推荐的方式.我能做什么?有没有我可以覆盖的另一个配置功能?

这些是我的地图功能的第一行:

     Configuration conf = new Configuration();          //load the MFile
     FileSystem fs = FileSystem.get(conf);
     Path inFile = new Path("planet/MFile");       
     FSDataInputStream in = fs.open(inFile);
     DecisionTree dtree=new DecisionTree().loadTree(in);

我想缓存那个MFile,这样我的map函数就不需要一遍又一遍地查看它

解决方法:

Jobconf在0.20.x中已弃用,但在1.0.0中则不是! :-)(截至撰写本文时)

对于您的问题,有两种方法可以在java中运行map reduce作业,一种是在org.apache.hadoop.mapreduce包中使用(扩展)类,另一种是在org.apache.hadoop.mapred包中实现类(或者反过来说).

不确定您使用的是哪一个,如果您没有要覆盖的配置方法,您将获得一个覆盖的设置方法.

@Override
protected void setup(Context context) throws IOException, InterruptedException

这与configure类似,应该对您有所帮助.

在org.apache.hadoop.mapreduce包中扩展Mapper类时,您将获得一个覆盖的设置方法.

标签:java,file-io,hadoop,mapreduce,distributed-cache
来源: https://codeday.me/bug/20190530/1184466.html