我不确定这种方法的作用。它是DistributedCache类的一部分。
我实际上是在Hadoop Blast的代码中使用它。我有一个文件RunnerMap.java,它有一个方法设置(Context context),它获取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的描述。
答案 0 :(得分:1)
使用DistributedCache,以便群集的节点可以共享某些文件/存档。档案通常是zip,tar和tgz / tar.gz文件。
因此,在main方法中,您应该设置希望节点共享的那些文件或存档(只读访问),然后在安装方法中,您可以获取这些文件,就像在发布时一样使用getLocalCacheArchives()方法的行。
也许,您会在this old documentation上找到一些有用的信息和示例,因为现在不推荐使用DistributedCache。