使用分布式缓存将文件目录添加到Hadoop?

时间:2012-03-15 18:34:27

标签: java hadoop distributed-caching

我正在尝试将存储在hdfs上的一堆依赖项添加到分布式缓存中。我一直在关注这篇文章的建议:http://www.datasalt.com/2011/05/handling-dependencies-and-configuration-in-java-hadoop-projects-efficiently/。我的问题是:是否可以将包含依赖项的文件夹添加到类路径?

DistributedCache.addFileToClassPath(new Path("/tmp/lib/"), job.getConfiguration());

或者我是否需要单独添加每个依赖项?

for (Path dependency : dependencies) {
   DistributedCache.addFileToClassPath(dependency, job.getConfiguration());
}

我如何检查依赖项是否实际上已添加到所有从属节点上的类路径中?

感谢。

1 个答案:

答案 0 :(得分:0)

你需要迭代罐子并按照你的建议一次添加一个罐子。或者,您可以将罐子捆绑到一个zip文件中,然后使用DistributedCache.addArchiveToClassPath(Path, Configuration)方法。

要检查它们是否已添加到类路径中,请尝试在mapper / reducer的setup方法中检查系统属性java.class.path