我是Apache NIFI的新手,并尝试将流程构建为POC。我需要你的指导。
我有一个压缩的'gz'文件说'sample.gz'包含一个文件'sample_file'。 我需要解压缩sample.gz文件并将'sample_file'存储在hdfs位置。
我正在使用GetFile处理器获取sample.gz文件,CompressContent处理器在解压缩模式下解压缩同一文件,PutHDFS处理器将解压缩文件放在HDFS位置。
运行流程后,我发现原始sample.gz文件只复制到HDFS位置,而我需要将sample_file复制到gz文件中。所以解压缩实际上对我没用。
我希望我能解释一下我面临的问题。如果我需要改变方法,请建议。
答案 0 :(得分:4)
我使用了相同的处理器序列,但将PutHDFS
更改为PutFile
。
GetFile --> CompressContent(decompress) --> PutFile
在nifi v1.3.0中它运行正常。
唯一的注意事项:如果我将参数Update Filename = false
保留为CompressContent
,则filename
属性在解压缩之后保持不变(sample.gz
)。
但内容已解压缩。
那么,如果你对文件名的问题那么:
Update Filename = true
处理器中设置参数CompressContent
进行更改。在这种情况下,sample.gz
在解压缩期间将更改为sample
。UpdateAttribute
处理器更改filename
属性