我不确定这个方法有什么作用。它是 Distributed Cache 类的一部分。
我实际上在Hadoop Blast的代码中使用它。我有一个文件RunnerMap.java,它有一个方法设置(上下文上下文),它获取localDB和localBlastProgram的路径,如下所示:
Configuration conf = context.getConfiguration();
Path[] local = DistributedCache.getLocalCacheArchives(conf);
localDB = local[0].toUri().getPath() + File.separator + conf.get(DataAnalysis.DB_ARCHIVE) + File.separator + conf.get(DataAnalysis.DB_NAME);
localBlastProgram = local[0].toUri().getPath();
我对Java比较陌生,所以我对这四行没有多大意义。
我也找不到MapReduce文档中getLocalCacheArchives的描述。
使用分布式缓存,以便群集的节点可以共享一些文件/存档。存档通常是zip,tar和tgz/tar.gz文件。
因此,在 main 方法中,您应该设置您希望节点共享的文件或存档(只读访问),然后在设置方法中,您可以使用 getLocalCacheArchives() 方法获取这些文件,就像在已发布的行中所做的那样。
也许,您会在这个旧文档中找到一些有用的信息和示例,因为分布式缓存现已弃用。