как отправлять файлы в hdfs, сохраняя их базовое имя

Кто-то подскажет мне, какое лучшее решение для отправки файлов из разных источников и сохранения их в hdfs на основе их имен. Моя ситуация: у меня есть сервер с большим количеством файлов, и мне нужно отправить их в HDFS. На самом деле я использовал flume, в его конфигурации я пробовал spooldir и ftp в качестве источников, но оба они имеют недостатки.
Итак, есть идеи, как это сделать?


person Chayma Sakouhi    schedule 02.05.2017    source источник


Ответы (1)


Используйте команду Hadoop put:

поставить

Использование: hadoop fs -put [-f] [-p] [-l] [-d] [- | ..].

Скопируйте один src или несколько src из локальной файловой системы в целевую файловую систему. Также считывает ввод со стандартного ввода и записывает в целевую файловую систему, если для источника установлено значение «-».

Копирование завершается ошибкой, если файл уже существует, если только не задан флаг -f.

Параметры:

-p : Сохраняет время доступа и модификации, владельца и разрешения. (при условии, что разрешения могут распространяться по файловым системам)

-f : перезаписывает пункт назначения, если он уже существует.

-l : Разрешить DataNode лениво сохранять файл на диск. Задает коэффициент репликации, равный 1. Этот флаг приведет к снижению надежности. Используйте с осторожностью.

-d : пропустить создание временного файла с расширением .КОПИРОВАНИЕ.

Примеры:

hadoop fs -put localfile /user/hadoop/hadoopfile

hadoop fs -put -f локальный файл1 локальный файл2 /пользователь/hadoop/hadoopdir

hadoop fs -put -d локальный файл hdfs://nn.example.com/hadoop/hadoopfile

hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile Считывает ввод со стандартного ввода.

Код выхода:

Возвращает 0 в случае успеха и -1 в случае ошибки.

https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#put

person Ray    schedule 03.05.2017
comment
Спасибо, я ценю ваше внимание к моему вопросу. На самом деле, я работаю на FTP-сервере, и я решил свою проблему, добавив некоторые дополнительные параметры в мой агентский поток, чтобы сохранить %{fileName} во время передачи с FTP-сервера на приемник HDFS. Спасибо еще раз :) - person Chayma Sakouhi; 03.05.2017
comment
могу я узнать, что у вас за файл flume.conf? Я также работаю так же, как FTP в качестве источника и HDFS в качестве приемника в конфигурации канала. - person JAy PaTel; 20.02.2019