Эластичная карта уменьшить внешние банки - PullRequest
8 голосов
/ 14 июня 2011

Таким образом, достаточно легко обрабатывать внешние банки, если использовать hadoop прямо вверх. У вас есть опция -libjars, которая сделает это за вас. Вопрос в том, как вы делаете это с EMR. Должен быть простой способ сделать это. Я думал, что -cachefile вариант CLI сделает это, но я не мог заставить его работать как-то. Любые идеи кто-нибудь?

Спасибо за помощь.

Ответы [ 3 ]

7 голосов
/ 13 июля 2012

Лучшее, что мне повезло с внешними jar-зависимостями, это скопировать их (с помощью действия начальной загрузки) в /home/hadoop/lib по всему кластеру. Этот путь находится на пути к классам каждого хоста. Эта техника является единственной, которая, кажется, работает независимо от того, где находится код, который обращается к внешним банкам (инструмент, задание или задача).

3 голосов
/ 15 июня 2011

Один из вариантов заключается в том, чтобы на первом этапе вашего рабочего процесса настроить JAR-файлы там, где они должны быть. Или, если они являются зависимостями, вы можете упаковать их в JAR своего приложения (которое, вероятно, в S3).

0 голосов
/ 17 апреля 2017

FYI для более новых версий EMR / home / hadoop / lib больше не используется.Следует использовать / usr / lib / hadoop-mapreduce.

...