Как добавить jar-файлы в classpath и выполнить их без перезапуска кластера hadoop? - PullRequest
1 голос
/ 18 ноября 2011

Я написал несколько mapreduce заданий, которые ссылаются на несколько внешних jar-файлов.поэтому я добавил их в CLASSPATH «работающего» кластера для запуска заданий.

После того, как я попытался запустить их, я получил класс не найденные исключения.Я гуглил способы исправить это и обнаружил, что мне нужно перезапустить кластер для применения измененного CLASSPATH, и это действительно сработало.

О, блин!Должен ли я действительно перезапускать кластер каждый раз, когда я добавляю новые файлы JAR в CLASSPATH?Я не думаю, что это имеет смысл.

Кто-нибудь знает, как применить изменения, не перезапуская их?


Я думаю, что мне нужно добавить некоторые детали, чтобы попросить вашего совета.

Я написал собственный класс фильтра hbase и упаковал его в банку.И я написал работу mapreduce, которая использует класс специального фильтра, и упаковал ее в другую банку.Поскольку jar класса фильтра не был в пути к классу моего «работающего» кластера, я добавил его.Но мне не удалось запустить задание, пока я не перезапустил кластер.

Конечно, я знаю, что мог бы собрать класс фильтра и задание в один сосуд.Но я не это имел ввиду.И мне любопытно, что я должен перезапустить кластер снова, если мне нужно добавить новые внешние банки?

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Проверьте статью Cloudera на наличие сторонних библиотек, необходимых для работы.Варианты (1) и (2) не требуют перезапуска кластера.

0 голосов
/ 18 ноября 2011

У вас может быть такая система, которая динамически разрешает имена классов в тип интерфейса для обработки ваших данных.

Только мои 2 цента.

...