在Nifi配置中配置状态管理器来持久化状态。
使用状态管理器来持久化状态:
- 在nifi.properties文件中配置状态管理器。将nifi.state.management.embedded.zookeeper.start设置为true,以启用嵌入式Zookeeper服务器。
nifi.state.management.embedded.zookeeper.start=true
nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties
-
确认是否有一个Zookeeper服务器在运行且与Zookeeper端口匹配。
-
打开Nifi的Web UI并导航至'状态管理器”选项卡,通过单击'启动”来启动状态管理器;
-
状态管理器已启动并已连接到Zookeeper服务器;
-
测试状态管理器是否可以存储和检索状态,可以使用以下代码示例:
final StateManagerProvider provider = new ZooKeeperStateManagerProvider();
final Map zooKeeperProperties = new HashMap<>();
zooKeeperProperties.put("connectString", "localhost:2181");
zooKeeperProperties.put("basePath", "/test");
final StateManager stateManager = provider.getStateManager(zooKeeperProperties);
stateManager.setState("testKey", "testValue"); //设置状态
final String state = stateManager.getState("testKey");
System.out.println(state); //输出状态值