2016-05-23 117 views
1

我部署了一个简单的数据流:HandleHttpRequest - PutKafka - HandleHttpResponseNIFI - 未指定传输关系

NIFI抛出“未指定传输关系”错误,但并非总是如此。任何人都可以帮我理解为什么?

以下是错误信息:

2016-05-23 14:57:00,126 ERROR [Timer-Driven Process Thread-104] o.a.n.p.standard.HandleHttpRequest HandleHttpRequest[id=3858f0ad-b165-427b-a460-67fbf7cff0d8] HandleHttpRequest[id=3858f0ad-b165-427b-a460-67fbf7cff0d8] failed to process due to 
org.apache.nifi.processor.exception.FlowFileHandlingException: 

StandardFlowFileRecord[uuid=ce7c98ae-d7f5-47ea-8a32-6a3834c85720,claim=StandardContentClaim 
[resourceClaim=StandardResourceClaim[id=1464006858837-110, container=default, section=110], offset=452435, length=0],offset=0,name=277074787796569,size=0] transfer relationship not specified; rolling back session: org.apache.nifi.processor.exception.FlowFileHandlingException: 

StandardFlowFileRecord[uuid=ce7c98ae-d7f5-47ea-8a32-6a3834c85720,claim=StandardContentClaim 
[resourceClaim=StandardResourceClaim[id=1464006858837-110, container=default, section=110], offset=452435, length=0],offset=0,name=277074787796569,size=0] transfer relationship not specified 
org.apache.nifi.processor.exception.FlowFileHandlingException: 

StandardFlowFileRecord[uuid=ce7c98ae-d7f5-47ea-8a32-6a3834c85720,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1464006858837-110, container=default, section=110], offset=452435, length=0],offset=0,name=277074787796569,size=0] transfer relationship not specified 
2016-05-23 14:57:00,127 ERROR [Timer-Driven Process Thread-104] o.a.n.p.standard.HandleHttpRequest HandleHttpRequest[id=3858f0ad-b165-427b-a460-67fbf7cff0d8] 

Failed to process session due to org.apache.nifi.processor.exception.FlowFileHandlingException: 

StandardFlowFileRecord[uuid=ce7c98ae-d7f5-47ea-8a32-6a3834c85720,claim=StandardContentClaim 
[resourceClaim=StandardResourceClaim[id=1464006858837-110, container=default, section=110], offset=452435, length=0],offset=0,name=277074787796569,size=0] transfer relationship not specified: org.apache.nifi.processor.exception.FlowFileHandlingException: 

StandardFlowFileRecord[uuid=ce7c98ae-d7f5-47ea-8a32-6a3834c85720,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1464006858837-110, container=default, section=110], offset=452435, length=0],offset=0,name=277074787796569,size=0] transfer relationship not specified 
org.apache.nifi.processor.exception.FlowFileHandlingException: 

StandardFlowFileRecord[uuid=ce7c98ae-d7f5-47ea-8a32-6a3834c85720,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1464006858837-110, container=default, section=110], offset=452435, length=0],offset=0,name=277074787796569,size=0] transfer relationship not specified 

这里如下的误差的图像:

HandleHttpRequest Error

感谢。

+0

你运行该版本什么的NiFi上? – apiri

+0

除了此错误消息,您是否偶然在日志中看到此警告消息? “收到来自{request address}的请求,但无法处理它,因为太多的请求已经完成;以SERVICE_UNAVAILABLE响应” – JDP10101

+0

@apiri我在Apache Nifi 0.6.0.1.2.0.0-91(HDF 1.2。 0.0) – galix85

回答

2

看到日志消息“无法处理它,因为太多的请求已经完成;用SERVICE_UNAVAILABLE响应”,我相信这是编码错误的结果。广泛的答案是,处理器无法正确处理创建的FlowFile,因为它无法与上下文映射进行交互。

更具体地说,在这个[1]代码块中,处理器无法在Context Map Controller服务中注册该请求,并且正在使用503响应进行响应。问题是处理器已经在此会话中创建了FlowFile [2],并且在响应代码块中,FlowFile既不被传输也不被移除。它应该做的是在创建它之后从会话中删除FlowFile并且遇到错误,就像它在OnTrigger [3]中早些时候所做的一样。

我已经创建了票据[4]并修复了[5]。我将修复程序合并到0.x和主分支中。

[1] https://github.com/apache/nifi/blob/9064b976317e316f42ac279dd026105b54a17ddb/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java#L601-L601 [2] https://github.com/apache/nifi/blob/9064b976317e316f42ac279dd026105b54a17ddb/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java#L483 [3] https://github.com/apache/nifi/blob/9064b976317e316f42ac279dd026105b54a17ddb/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java#L489-L489 [4] https://issues.apache.org/jira/browse/NIFI-1913 [5] https://github.com/apache/nifi/pull/462