2012-03-15 5 views
1

Я пытаюсь добавить кучу зависимостей, хранящихся в hdfs, в распределенный кеш. Я следую советам этой статьи: http://www.datasalt.com/2011/05/handling-dependencies-and-configuration-in-java-hadoop-projects-efficiently/. Мой вопрос: возможно ли добавить папку, содержащую зависимости, к пути к классам?Добавление каталога файлов в Hadoop с использованием распределенного кеша?

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

Или мне нужно будет добавить каждую зависимость отдельно?

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

И как я могу проверить, действительно ли зависимости были добавлены в путь к классам на всех подчиненных узлах?

Спасибо.

ответ

0

Вам нужно будет перебирать банки и добавлять их по одному, как вы предложили. Или вы можете объединить банки в один ZIP-файл, а затем использовать метод DistributedCache.addArchiveToClassPath(Path, Configuration).

Чтобы проверить, что они были добавлены в путь к классам, попробуйте изучить свойство System java.class.path в методе настройки устройства отображения/редуктора.

Смежные вопросы