我想从hdfs中提取一些数据。***
***为了杀死这些线程,我使用了“terminate”选项。
只是想知道终止选项的工作原理。它是否优雅地关闭了与fs的所有连接?既然所有的线程都被终止了,我是否会丢失这些线程所消耗的数据?只有当线程卡住或流进入冻结状态时,才建议使用终止选项吗?
xsuvu9jc1#
当您停止一个处理器时,它会告诉nifi框架不再调度/执行处理器,但是可能已经有线程正在执行,需要完成它们正在做的事情。通常,这些线程应该完成,您将看到活动线程消失,但有时线程被阻塞(通常是在尝试在没有设置适当超时的情况下在某处建立网络连接时),并且该线程可能永远不会完成,因此需要终止。terminate选项将向线程发出中断,然后隔离它,这会将它从池中取出以供进一步执行。然后线程可能在后台完成,或者如果它没有响应中断并且被阻塞,那么它可能会一直停留在后台,直到下一次重新启动nifi。
***如果它从未获取数据,并且一直连接到hdfs,那么您可以使用terminate。
1条答案
按热度按时间xsuvu9jc1#
当您停止一个处理器时,它会告诉nifi框架不再调度/执行处理器,但是可能已经有线程正在执行,需要完成它们正在做的事情。通常,这些线程应该完成,您将看到活动线程消失,但有时线程被阻塞(通常是在尝试在没有设置适当超时的情况下在某处建立网络连接时),并且该线程可能永远不会完成,因此需要终止。
terminate选项将向线程发出中断,然后隔离它,这会将它从池中取出以供进一步执行。然后线程可能在后台完成,或者如果它没有响应中断并且被阻塞,那么它可能会一直停留在后台,直到下一次重新启动nifi。
***如果它从未获取数据,并且一直连接到hdfs,那么您可以使用terminate。