我目前正在使用Flume 1.7。已配置假脱机目录源。我已经启用了递归目录搜索=true来查找文件的子目录。
source.spoolDir=/tmp/test
在/tmp/test 下,使用数据文件/tmp/test/data1/file.csv 、/tmp/test/data2/file2.csv 创建子目录。
我希望在 HDFS 接收器路径中创建确切的子目录结构。
/sink/data1/file.csv/sink/data2/file2.csv
当我使用 %{file} 作为 HDFS 接收器文件路径时,我得到完整的绝对路径,而 %{basename} 只给我文件名。我想从 spooldir 源路径中提取子目录结构。有什么方法可以做到这一点吗?
可以使用fileHeader
和fileHeaderKey
属性,并在接收器配置中引用此标头变量以获取绝对路径。
https://flume.apache.org/FlumeUserGuide.html#spooling-directory-source