Apache zookeeper 存储自定义NiFi处理器所需的数据

Apache zookeeper 存储自定义NiFi处理器所需的数据,apache-zookeeper,apache-nifi,Apache Zookeeper,Apache Nifi,HDP-2.5.3.0,NiFi 1.1.1 我正在用NiFi编写一个自定义处理器。我需要将几个字符串和时间戳字段存储在某个位置,以便这些字段在所有/任何节点上都可用 @Tags({ "example" }) @CapabilityDescription("Provide a description") @SeeAlso({}) @ReadsAttributes({ @ReadsAttribute(attribute = "", description = "") }) @WritesAttri

HDP-2.5.3.0,NiFi 1.1.1

我正在用NiFi编写一个自定义处理器。我需要将几个字符串和时间戳字段存储在某个位置,以便这些字段在所有/任何节点上都可用

@Tags({ "example" })
@CapabilityDescription("Provide a description")
@SeeAlso({})
@ReadsAttributes({ @ReadsAttribute(attribute = "", description = "") })
@WritesAttributes({ @WritesAttribute(attribute = "", description = "") })
public class MyProcessor extends AbstractProcessor {
.
.
.
private List<PropertyDescriptor> descriptors;
private Set<Relationship> relationships;

 /* Persist these, probably, in ZK */
private Timestamp lastRunAt;
private String startPoint;
.
.
.

@Override
public void onTrigger(final ProcessContext context,final ProcessSession session) throws ProcessException {FlowFile flowFile = session.get();

/*Retrieve lastRunAt & startPoint and use*/
lastRunAt ;
startPoint ;
.
.
.
}
}
@标记({“示例”})
@能力描述(“提供说明”)
@另见({})
@ReadsAttributes({@ReadsAttribute(attribute=,description=)})
@WriteAttribute({@WriteAttribute(attribute=“”,description=“”)})
公共类MyProcessor扩展了AbstractProcessor{
.
.
.
私有列表描述符;
私人关系;
/*可能在ZK中保留这些*/
私有时间戳lastRunAt;
私有字符串起始点;
.
.
.
@凌驾
public void onTrigger(final ProcessContext context,final ProcessSession session)抛出ProcessException{FlowFile FlowFile=session.get();
/*检索lastRunAt&startPoint并使用*/
lastRunAt;
起点;
.
.
.
}
}
请注意,HDFS不是一个选项,因为NiFi可能在图片中没有任何Hadoop安装的情况下运行


有哪些选项可以做到这一点?我想知道Zookeeper是否可以用来存储这些数据,因为它的大小很小,NiFi由ZK支持。我试图找到使用Zookeeper API保存这些字段的方法,但没有成功。

NiFi公开了一个称为“状态管理器”的概念,处理器可以存储这样的信息。当运行独立NiFi时,有一个本地状态管理器,当运行集群时,有一个ZooKeeper状态管理器

请在此处查看开发人员指南:

此外,NiFi中的许多源处理器都利用了这一点,因此您可以在代码中查找示例:

状态提供程序配置的管理指南: