我是Apache NIFI的新手,并试图将流构建为POC。我需要你的指导。
我有一个压缩的"gz"文件说"样本.gz"包含一个文件说"sample_file"。我需要解压缩样本.gz文件并将"sample_file"存储在 hdfs 位置。
我正在使用GetFile处理器来获取示例.gz文件,在解压缩模式下使用CompressContent处理器来解压缩相同的文件,并使用PutHDFS处理器将解压缩的文件放在HDFS位置。
运行流程后,我发现原始样本.gz文件仅复制到 HDFS 位置,而我需要将sample_file复制到 gz 文件中。所以减压实际上对我不起作用。
我希望我能解释我面临的问题。如果我需要改变我的方法,请提出建议。
我使用相同的处理器序列,但PutHDFS
更改为PutFile
。
GetFile --> CompressContent(decompress) --> PutFile
在 nifi v1.3.0 中,它工作正常。
唯一的注意事项:如果我将参数保留在 for CompressContent
Update Filename = false
,那么解压缩后 filename
属性与以前相同(sample.gz
(。
但是内容是解压缩的。
因此,如果您对文件名有疑问,那么:
- 您可以通过在处理器中设置参数
Update Filename = true
来更改CompressContent
在这种情况下,解压缩期间sample.gz
将更改为sample
。 - 使用
UpdateAttribute
处理器更改filename
属性