2013-02-26 2 views
0

При использовании Perl-скрипта в качестве преобразователя & редуктора в потоке Hadoop, как мы можем управлять зависимостями модулей perl.Hadoop Streaming - зависимость от модуля Perl

Я хочу использовать «Net :: RabbitMQ» в моем perl mapper & сценарий редуктора.

Есть ли стандартный способ в Perl/Hadoop потокового для обработки зависимостей, аналогичных DistributedCache (для Hadoop Java MR)

+0

Извините, но мне непонятно, как DistributedCache обрабатывает эту вещь? Не могли бы вы объяснить это bc. Эксперты perl не знают о Java и наоборот. – user1126070

+0

DistributedCache поможет в java-зависимостях jar в реализациях Hadoop Mapreduce. Я ищу аналогичный для Hadoop потокового в perl. – user703555

ответ

0

Есть несколько способов справиться с зависимостями, включая указав путь к библиотеке или создавая упакованный двоичный файл вашего приложения Perl с PAR::Packer. Есть несколько примеров того, как выполнить эти задачи в разделе «Примеры» в POD Hadoop::Streaming, а автор содержит хорошее описание процесса, а также некоторые соображения для разных способов обработки зависимостей. Обратите внимание, что предложения, представленные в документации Hadoop :: Streaming по обработке зависимостей Perl, не относятся к этому модулю.

Вот выдержка из документации Hadoop :: Streaming (есть подробные примеры в них, как уже упоминалось ранее):

Все Perl модули должны быть установлены на каждом Hadoop кластера машины. Это оказывается проблемой для крупных установок. У меня есть локальная директория perl, управляемая локальным :: lib, который я выталкиваю в фиксированное место на всех моих контейнерах (/ apps/perl5), которые поддерживаются в актуальном состоянии и включены в образ моей системы. Раньше я создавал автономные файлы perl с PAR :: Packer (pp), которые работали достаточно хорошо, за исключением размера флага с опцией -file. Отдельные файлы можно поместить в hdf, а затем включить в банку с помощью опции -cacheFile.

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