Есть несколько способов справиться с зависимостями, включая указав путь к библиотеке или создавая упакованный двоичный файл вашего приложения Perl с PAR::Packer. Есть несколько примеров того, как выполнить эти задачи в разделе «Примеры» в POD Hadoop::Streaming, а автор содержит хорошее описание процесса, а также некоторые соображения для разных способов обработки зависимостей. Обратите внимание, что предложения, представленные в документации Hadoop :: Streaming по обработке зависимостей Perl, не относятся к этому модулю.
Вот выдержка из документации Hadoop :: Streaming (есть подробные примеры в них, как уже упоминалось ранее):
Все Perl модули должны быть установлены на каждом Hadoop кластера машины. Это оказывается проблемой для крупных установок. У меня есть локальная директория perl, управляемая локальным :: lib, который я выталкиваю в фиксированное место на всех моих контейнерах (/ apps/perl5), которые поддерживаются в актуальном состоянии и включены в образ моей системы. Раньше я создавал автономные файлы perl с PAR :: Packer (pp), которые работали достаточно хорошо, за исключением размера флага с опцией -file. Отдельные файлы можно поместить в hdf, а затем включить в банку с помощью опции -cacheFile.
Извините, но мне непонятно, как DistributedCache обрабатывает эту вещь? Не могли бы вы объяснить это bc. Эксперты perl не знают о Java и наоборот. – user1126070
DistributedCache поможет в java-зависимостях jar в реализациях Hadoop Mapreduce. Я ищу аналогичный для Hadoop потокового в perl. – user703555