gpt4 book ai didi

database - 如何仅当 hdfs 中有文件时才执行命令

转载 作者:可可西里 更新时间:2023-11-01 15:19:31 24 4
gpt4 key购买 nike

我在 Ambari 的 HDP snadbox 中使用 NiFi 和 Hive。

我有一个 NiFi 流,我将修改后的文件上传到 hdfs,然后使用 generateflowfile,我将查询 load data inpath 'hdfs/path/' into table tablename 传递给 puthiveql 处理器。

效果很好,但我只想在“hdfs/path”指定的路径中有文件时这样做,因为当命令 load inpath 执行时,hdfs 目录会清空。

我不知道我该怎么做。

非常感谢!

最佳答案

使用 ListHDFS 处理器并将处理器配置为频繁运行(例如每分钟..等),Directory 属性值。

  • 该处理器存储状态并增量运行,只有在目录中检测到新添加的文件时才输出流文件。

然后使用ReplaceText处理器

  • 替换策略为AlwaysReplace
  • 替换值作为load data inpath '${path}/${filename}' into table tablename

然后将成功关系连接到PutHiveQL处理器执行加载数据命令。

流量:

1.ListHDFS
2.ReplaceText
3.PutHiveQL

关于database - 如何仅当 hdfs 中有文件时才执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57200509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com