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