【问题标题】:Passing Flowfile to FetchHdfs processor将流文件传递给 FetchHdfs 处理器
【发布时间】:2021-11-26 11:03:55
【问题描述】:

我有一个 Nifi Flow,它将获取 Active NameNode,并将 NN ip 放入流文件属性中。现在我想在下一个应用程序中使用 NN 属性,它是一个 fetchHDFS 处理器。

但似乎队列中的 flowFile 不是流经 FetchHDFS 处理器。

这是flowFile的属性,我对host_ip,Host_name感兴趣

更新

我想动态更改 hdfs 路径/ActiveNN 等以获取数据,因此所有这些信息都将出现在 flowfile 属性中。

下图是我的要求,path 和 host_ip 将出现在 flowfile 属性中,如果 fetchHDFS 方法不正确,我该如何实现。

【问题讨论】:

  • flowFile in queue is not Flowing through FetchHDFS processor是什么意思
  • 嗨@daggett,这意味着,你可以从上面的图片(第一张)看到队列中有一个流文件。但它不是由 fetchHDFS 处理器挑选的。在那个 flowFile 中,我拥有所有信息,如 HDFS 路径、Active NameNOde 等
  • @daggett 如果你看到第二张图片,那是 queued flowFile 的属性,所以我需要访问 fetchHDFS 处理器中的 host_ip 和 host_name
  • 好像 fetchhdfs 不支持动态源服务器。
  • 脚本几乎可以解决任何挑战。例如:read file from HDFS。但在以这种方式移动之前,请仔细检查您是否确实拥有动态 IP,因为如果您正确定义了 hdfs 集群,它应该会自动解析物理文件位置

标签: apache-nifi


【解决方案1】:

FetchHDFS 配置属性没有指定 host_ip、Host_name 等选项。要正确配置它,我们必须提供包含 Hadoop 文件系统配置的文件,即 core-site.xmlhdfs-site.xml,如果您的 Hadoop集群正在使用任何身份验证机制,那么您还需要提供这些详细信息。请参考下面的工作配置屏幕截图,从任何 Hadoop 数据节点复制这些文件并粘贴到 NiFi 节点(或用于 NiFi 集群设置的所有节点)并通过 Hadoop 集群身份验证详细信息(如果有)。

【讨论】:

  • 可以说如果我想将文件从 hdfs 加载到 Nifi,我们该怎么做..?在这种情况下,我们需要提供 hdfs 路径对吗?但我担心我们如何动态改变路径
  • 如果我需要从每小时存储桶中的 hdfs 获取数据,那么每小时路径都会改变。?这就是为什么我需要给这个处理器一个流文件,所以流文件将包含所有属性,如路径/NameNode/等
  • 嗨,请看更新
  • @badhushamuhammed - HDFS Filename 属性支持表达式语言,因此上游连接可以像${file_to_fetch} 一样为该属性派生/传递值,并且您的API 输入端口应该从另一个进程组获取此属性。否则,在APIFetchHDFS 之间添加一个UpdateAttribute,它将派生${file_to_fetch} 属性,它的值。此外,您可以使用 ListHDFS - FetchHDFS 之类的组合
  • 是的,但是fetchHDFS 没有在queue 中获得flowfileFlowfile attribute 包含有关路径的信息。请看图片 1. 一个queued。不是fetchHDFS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多