我目前正在使用NiFi 1.5.0(但它与以前的版本相同),我想知道是否有办法在同一时间清除所有队列?
当处理器数量增加时,重置所有内容可能会很长。
(我已经知道如何清除单个队列: How to clear NiFi queues?)
我正在寻找使用UI或API的解决方案
提前致谢!
答案 0 :(得分:3)
如果您想完全删除所有数据,可以停止NiFi并删除所有“_repository”目录(流文件,内容和出处)。这基本上完全重置了你的NiFi数据。
答案 1 :(得分:2)
我还没有时间对此进行彻底的测试,但它应该有效:
# In your linux shell - NiPyAPI is a Python2/3 SDK for the NiFi API
pip install nipyapi
python
# In Python
from nipyapi import config, canvas, nifi
# Get a flat list of all process groups
pgs = canvas.list_all_process_groups()
# get a flat list of all connections in all process groups
cons = []
for pg in pgs: cons += nifi.ProcessgroupsApi().get_connections(pg.id).connections
# Issue a drop order for every connection in every process group
for con in cons: nifi.FlowfilequeuesApi().create_drop_request(con.id)
编辑:我继续执行此操作,因为它似乎很有用: https://github.com/Chaffelson/nipyapi/issues/45
import nipyapi
pg = nipyapi.canvas.get_process_group('MyProcessGroup')
nipyapi.canvas.purge_process_group(pg, stop=True)
停止选项会在清除之前取消程序组的计划,只是为了方便