我和nifi和hive在ambari的hdp snadbox里合作。我有一个nifi流,将修改过的文件上传到hdfs,然后用generateflowfile传递查询 load data inpath 'hdfs/path/' into table tablename 到puthiveql处理器。它工作得很好,但我只想在“hdfs/path”指定的路径中有文件时这样做,因为 load inpath 执行时,该hdfs目录将清空。我不知道该怎么做。非常感谢!!
load data inpath 'hdfs/path/' into table tablename
load inpath
x4shl7ld1#
使用 ListHDFS 处理器,并将处理器配置为频繁运行(如每分钟..等),目录属性值。此处理器存储状态并以增量方式运行,仅当在目录中检测到新添加的文件时才输出流文件。然后使用 ReplaceText 处理器替换策略 AlwaysReplace 重置价值为 load data inpath '${path}/${filename}' into table tablename 然后将成功关系与 PutHiveQL 处理器执行加载数据命令。流量:
ListHDFS
ReplaceText
AlwaysReplace
load data inpath '${path}/${filename}' into table tablename
PutHiveQL
1.ListHDFS2.ReplaceText3.PutHiveQL
1.ListHDFS
2.ReplaceText
3.PutHiveQL
1条答案
按热度按时间x4shl7ld1#
使用
ListHDFS
处理器,并将处理器配置为频繁运行(如每分钟..等),目录属性值。此处理器存储状态并以增量方式运行,仅当在目录中检测到新添加的文件时才输出流文件。
然后使用
ReplaceText
处理器替换策略
AlwaysReplace
重置价值为load data inpath '${path}/${filename}' into table tablename
然后将成功关系与PutHiveQL
处理器执行加载数据命令。流量: