gpt4 book ai didi

java - 所有 map task 的 Hadoop 缓存文件

转载 作者:可可西里 更新时间:2023-11-01 14:21:36 26 4
gpt4 key购买 nike

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

这些是我的 map 函数的第一行:

     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 函数就不需要一遍又一遍地查看它了

最佳答案

好吧,我想我做到了。我遵循了拉维·巴特 (Ravi Bhatt) 的提示,并写下了以下内容:

  @Override
protected void setup(Context context) throws IOException, InterruptedException
{
FileSystem fs = FileSystem.get(context.getConfiguration());
URI files[]=DistributedCache.getCacheFiles(context.getConfiguration());
Path path = new Path(files[0].toString());
in = fs.open(path);
dtree=new DecisionTree().loadTree(in);
}

在我的主要方法中,我这样做,将其添加到缓存中:

  DistributedCache.addCacheFile(new URI(args[0]+"/"+"MFile"), conf);
Job job = new Job(conf, "MR phase one");

我可以通过这种方式检索我需要的文件,但还不能确定它是否 100% 有效。有什么方法可以测试吗?谢谢。

关于java - 所有 map task 的 Hadoop 缓存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9270971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com