处理NIFI错误的最佳实践

问题描述 投票:1回答:1

我正在使用NIFI,我有数据流,我使用以下过程:

  • ExecuteScript
  • RouteOnAttribute
  • FetchMapDistribuedCache
  • InvokeHTTPRequest
  • EvaluateJSONPath

和NIFI FLOW这两个级别的进程组>>>进程组1 >>>进程组2,我的问题是如何处理这种情况下的错误,我为每个处理器创建了输出端口,以输出进程组外的错误和NIFI Flow我为每种错误类型做了一个漏斗,然后把所有这些错误都放在Hbase中,这样我以后就可以做一些报告了,你可以想象这会增加多个关系,我的简单数据流开始变得不那么明显了。

我的问题是,处理处理器错误的最佳做法是什么,以及使用NIFI(电子邮件或PDF)进行错误报告的最佳方法是什么?

apache-nifi
1个回答
3
投票

这取决于您经常遇到的错误。某些处理器可能无法执行任务(预期但不期望的结果),并将失败的流文件路由到REL_FAILURE,这是一种特定关系,可以连接到处理器来处理这些故障,或者返回到同一个处理器进行重试。其他(或不同场景中的相同处理器)可能会遇到异常,这些异常是处理器无法解决的意外事件。

这方面的一个例子是PutKafka vs. EncryptContent。如果远程Kafka系统暂时不可用,则处理器将无法发送流文件内容。但是,如果远程系统再次可用,则在一段延迟时间后重试可能会成功。但是,使用错误的密钥解密密文将始终抛出异常,无论尝试多少次或重试延迟多长时间。

许多用户将错误路由到PutEmail处理器并将其报告给特定用户/组,他们可以评估错误并在必要时监视数据流。您还可以使用“报告任务”来监控指标或将来源数据作为运营数据进行摄取,并将其路由到电子邮件/离线存储等,以便对其进行分析。

© www.soinside.com 2019 - 2024. All rights reserved.