2015-04-23 2 views
3

Я использую Flume 1.3.1 ng, я передаю файл из spoolDir в HDFS Sink, и мне нужно имя outpufile так же, как и входной файл. Например, если имя входного файла - sample.gz, то вывод также нужен как sample.gzКак сохранить имя файла при транслировании файла в Apache Flume?

Не могли бы вы предоставить процедуру, как можно достичь этой функциональности в Flume 1.3.1 нг.

ответ

0

Существует параметр для spooldir о том, добавлять ли заголовок относительно имени исходного файла или нет. Это называется fileHeader, и по умолчанию устанавливается в ложь, поэтому установить его ти верно:

agentname.sources.mysource.type = spooldir 
agentname.sources.mysource.spoolDir = /path/to/the/dir 
agentname.soruces.mysource.fileHeader = true 
+1

Я добавил следующие данные tw o строк в конфигурации агента agent1.soruces.spoolDirSource.fileHeader = true agent1.sinks.hdfsSink.hdfs.filePrefix =% {file} имя выходного файла. Я получил как .1429872137679.gz. Я не получил то же имя, что и входной файл – kasi

1

Я использую следующие настройки:

a1.sources.r1.basenameHeader = true 
a1.sinks.k1.hdfs.filePrefix = %{basename} 

Эти параметры дают мне следующее преобразование:

original_file.txt -> original_file.1457085474015.txt 

И, к сожалению, вы не можете удалить временную метку с имени файла: C

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