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