如果我们想从包含gzip文件的spooldir中获取数据,我应该在flume进程中为源代码更改什么?只是有一个定制的eventdeserializer,或者还需要为flume进程提供新的源类型(例如,一个定制的gzipspooldirectorysource而不是默认的spooldir)?
ryoqjall1#
好吧,如果你不想在flume级别解压gzip文件,那其实很简单。您可以将spool dir源配置为使用blobdeserializer:https://flume.apache.org/flumeuserguide.html#event-反序列化程序这将把整个文件解析为一个事件,并将其假脱机。如果要将其存储到hdfs for instacne,请确保激活spool dir源上的fileheader属性。然后可以在路径中使用%{file}变量,这有效地允许您使用flume作为一对一的文件复制机制。
1条答案
按热度按时间ryoqjall1#
好吧,如果你不想在flume级别解压gzip文件,那其实很简单。您可以将spool dir源配置为使用blobdeserializer:
https://flume.apache.org/flumeuserguide.html#event-反序列化程序
这将把整个文件解析为一个事件,并将其假脱机。如果要将其存储到hdfs for instacne,请确保激活spool dir源上的fileheader属性。然后可以在路径中使用%{file}变量,这有效地允许您使用flume作为一对一的文件复制机制。