Apache spark 如何管理';等等';Nifi ExecuteSpark交互处理器中的状态?

Apache spark 如何管理';等等';Nifi ExecuteSpark交互处理器中的状态?,apache-spark,apache-nifi,livy,Apache Spark,Apache Nifi,Livy,我正在使用Nifi ExecuteSparkInteractive处理器运行spark代码,我看到它的结果要么成功,要么失败,然后等待。当结果进入成功和失败状态时,我能够很好地管理和路由结果,但有时我会看到文件丢失,我认为它将处于等待状态,并且在我的Nifi流中没有为“等待”状态定义路由。有人能帮助我理解“等待”状态的确切含义吗?我如何在这种状态下路由控件而不影响最终结果 提前谢谢你 我曾尝试将nifi控件路由到UpdateAttribute处理器,但从spark代码中看不到任何结果。看起来代码

我正在使用Nifi ExecuteSparkInteractive处理器运行spark代码,我看到它的结果要么成功,要么失败,然后等待。当结果进入成功和失败状态时,我能够很好地管理和路由结果,但有时我会看到文件丢失,我认为它将处于等待状态,并且在我的Nifi流中没有为“等待”状态定义路由。有人能帮助我理解“等待”状态的确切含义吗?我如何在这种状态下路由控件而不影响最终结果

提前谢谢你

我曾尝试将nifi控件路由到UpdateAttribute处理器,但从spark代码中看不到任何结果。看起来代码在ExecuteSparkINteractive的“等待”状态下未执行

由于Nifi在处理器之间提供复选框和连接控制器,因此没有针对此问题的代码

我已经将成功和失败条件以及等待状态的控制权从ExecuteSparkInteractive处理器传递给RouteOnAttribute进程,但spark代码在等待状态下不会执行


Spark代码应该在等待状态下执行,然后它应该路由到成功和失败。

我在ExecuteSparkInteractive处理器中找到了“等待”状态的目的

每当控件/文件流经Execute spark interactive processor时,它就会从该处理器执行spark代码,但它会首先查找在纱线集群上运行的可用Livy spark会话。 若Livy Spark会话的非可用状态(可能是其他进程正在这些会话上运行),则控件将进入等待状态

理想情况下,ExecuteSpark交互式处理器正在等待Livy spark会话可用以执行代码。这就是如果未处理“等待”状态,代码不会执行的原因

为了解决这个问题,我在“等待”状态下调用ExecuteSparkInteractive,基本上是将控件循环回同一个处理器,以便在处理器有Livy会话可用时运行spark代码。这解决了我的问题

我附上了我的模板截图供参考。