Oozie запускает сценарии оболочки на случайных узлах

Я написал что-то вроде пользовательского FTP-экшена oozie (простой пример описан в статье «Профессиональные решения Hadoop, авторы: Борис Люблинский; Кевин Т. Смит; Алексей Якубович»). У нас есть HDFS на узле1 и сервер Oozie на узле2. Node2 также имеет клиент HDFS.

Моя проблема:

  1. Задание Oozie началось с узла 1 (все необходимые файлы находятся в HDFS на узле 1).
  2. Пользовательское действие Oozie FTP успешно загрузило CSV-файлы с FTP на node2 (сервер oozie расположен)
  3. Я должен передать файл в HDFS и создать внешнюю таблицу из CSV на node1. Я попытался использовать действие Java и вызвать метод fileSystem.moveFromLocalFile(...). Также я пытался использовать действие Shell, такое как /usr/bin/hadoop fs -moveFromLocal /tmp\import_folder/filename.csv /user/user_for_import/imported/filename.csv, но у меня не было эффекта. Вроде все действия пытались смотреть файлы на node1. Тот же результат, если я запускаю работу oozie с node2.

Вопрос: могу ли я настроить узел для действия FTP для загрузки файлов с FTP на node1? Или можно какие-то другие способы передачи загруженных файлов в HDFS вместо описанных?


person Vadim Y    schedule 08.12.2015    source источник


Ответы (2)


Oozie выполняет все свои действия как задания MR на узлах из настроенного кластера Map Reduce. Невозможно заставить Oozie выполнять какие-то действия на конкретном узле.

По сути, вы должны использовать Flume для загрузки файлов в HDFS. Настройте агент Flume на своем FTP-узле.

person Mikhail Golubtsov    schedule 14.12.2015

Ozzie позволяет пользователю запускать сценарий оболочки на определенном узле через расширение оболочки oozie sssh. https://oozie.apache.org/docs/4.2.0/DG_SshActionExtension.html

person user2120239    schedule 26.02.2019