处理NIFI错误的最佳实践

时间:2016-12-20 11:50:44

标签: apache-nifi

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

  • ExecuteScript
  • RouteOnAttribute
  • FetchMapDistribuedCache
  • InvokeHTTPRequest
  • EvaluateJSONPath

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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