我有一个用例,我需要将目录中的文件提取到 HDFS 中。作为 POC,我在 Flume 中使用了简单的 Directory Spooling,我在其中指定了源、接收器和通道,它工作正常。缺点是我必须为进入不同文件夹的多种文件类型维护多个目录,以便更好地控制文件大小和其他参数,同时使配置重复但容易。
作为替代方案,我被建议使用正则表达式拦截器,其中多个文件将驻留在单个目录中,并基于文件中的字符串,将被路由到 HDFS 中的特定目录。我期望的文件类型是 CSV 文件,其中第一行是标题,后续行是逗号分隔值。
考虑到这一点,我有几个问题。
- 拦截器如何处理文件?
- 鉴于 CSV 中的标题行
ID, Name
在下一行后面是 ID 和名称,并且同一目录中的另一个文件Name, Address
在下一行后面是名称和地址,拦截器和通道配置会是什么样子将其路由到不同的 HDFS 目录? - 拦截器如何处理明显不匹配正则表达式的后续行?
- 整个文件甚至会构成一个事件,还是一个文件实际上可能是多个事件?
请告诉我。谢谢!