NIFI 系统属性 System Properties之Provenance Repository来源库

来源:互联网 发布:nginx 配置两个server 编辑:程序博客网 时间:2024/06/05 15:18

来源库 Provenance Repository

来源库包含有关数据来源的信息。 接下来的四个部分是Provenance Repository属性。
nifi.provenance.repository.implementation
Provenance Repository实现。缺省值是org.apache.nifi.provenance.PersistentProvenanceRepository。另外还有两个存储库。要将起源事件存储在内存中而不是磁盘上(在这种情况下,所有事件将在重新启动时丢失,并且事件将以先入先出的顺序逐出),请将此属性设置为org.apache.nifi.provenance .VolatileProvenanceRepository。这在Java堆中留下了可配置数量的Provenance事件,因此可以保留的事件数量非常有限。
从Apache NiFi 1.2.0开始,可以使用第三个和第四个选项:org.apache.nifi.provenance.WriteAheadProvenanceRepository和org.apache.nifi.provenance.EncryptedWriteAheadProvenanceRepository。这个实现是为了替换PersistentProvenanceRepository而创建的。 PersistentProvenanceRepository最初编写的目的是在生成Provenance事件时提供持久性,并提供循序遍历这些事件的能力。之后,希望能够压缩数据以便可以存储更多的数据。再之后,添加了索引和查询数据的能力。需求随着时间的变化,该存储库不断变化,并没有任何重大的重新设计。当在nifi中处理大量小的FlowFiles时,PersistentProvenanceRepository可能很快成为瓶颈。然后有了WriteAheadProvenanceRepository提供与PersistentProvenanceRepository相同的功能,同时提供更好的性能,更改为WriteAheadProvenanceRepository很简单,因为这两个存储库支持大部分相同的属性。
注意,但是,以下警告:WriteAheadProvenanceRepository将使用由PersistentProvenanceRepository存储的Provenance数据。但是,PersistentProvenanceRepository可能无法读取由WriteAheadProvenanceRepository写入的数据。因此,一旦Provenance Repository更改为使用WriteAheadProvenanceRepository,就不能将其更改回PersistentProvenanceRepository,而不删除Provenance Repository中的数据。因此,建议用户在更改实现之前,确保其版本是稳定的,以防出现任何问题导致用户需要回滚到不支持WriteAheadProvenanceRepository的NiFi的先前版本。正是由于这个原因,此时默认仍然设置为PersistentProvenanceRepository。

Persistent Provenance Repository Properties

当nifi.provenance.repository.implementation为org.apache.nifi.provenance.PersistentProvenanceRepository时支持的属性

Property Description nifi.provenance.repository
.directory.default* Provenance Repository的位置。 默认值是./provenance_repository。
注意:可以使用nifi.provenance.repository.directory指定多个出处。
前缀具有唯一的后缀和单独的路径作为值。
例如,为了提供另外两个位置作为源出处库的一部分,
用户还可以用下列关键字指定其他属性:nifi.provenance.repository
.directory.provenance1=/repos/provenance1
nifi.provenance.repository.directory.provenance2=/repos/provenance2提供三个总位置,包括nifi.provenance.repository.directory.default。 nifi.provenance.repository
.max.storage.time 保留数据来源信息的最长时间。 默认值是24小时。 nifi.provenance.repository
.max.storage.size 一次存储的最大数据来源信息。 默认值是1 GB。 nifi.provenance.repository
.rollover.time 在滚动最新的数据起源信息之前要等待的时间,以便在用户界面中可用。
默认值是30秒。 nifi.provenance.repository
.rollover.size 一次滚动的信息量。 默认值是100 MB。 nifi.provenance.repository
.query.threads 用于Provenance Repository查询的线程数量。 默认值是2。 nifi.provenance.repository
.index.threads 用于索引Provenance事件的线程数量,以便它们可以搜索。 默认值为2.对于在很多FlowFiles上运行的流,Provenance事件的索引可能成为瓶颈。 如果是这样的话,会出现一个公告,指出“The rate of the dataflow is exceeding the provenance recording rate. Slowing down flow to accommodate”。 如果发生这种情况,增加此属性的值可能会增加Provenance Repository能够处理这些记录的速率,从而提高整体吞吐量。 nifi.provenance.repository
.compress.on.rollover 指示是否在滚动时压缩出处信息。 默认值是true。 nifi.provenance.repository
.always.sync 如果设置为true,则对存储库的任何更改都将同步到磁盘,这意味着NiFi将要求操作系统不要缓存信息。 这代价是非常昂贵的,NiFi性能会显著降低。 但是,如果为false,如果突然断电或操作系统崩溃,则可能会有数据丢失的可能性。 默认值是false。 nifi.provenance.repository
.journal.count 应该用来序列化Provenance事件数据的日志文件的数量。 增加此值将允许更多的任务同时更新存储库,但会导致日后更加昂贵的日志文件合并。 理想情况下,这个值应该等于预期同时更新存储库的线程数量,但是在很多环境中16这个值往往很好。 默认值是16。 nifi.provenance.repository
.indexed.fields 这是应该索引并可搜索的字段的逗号分隔列表。 未编入索引的字段将不可搜索。 有效的字段是:EventType, FlowFileUUID, Filename, TransitURI, ProcessorID, AlternateIdentifierURI, Relationship, Details。 默认值是:EventType,FlowFileUUID,Filename,ProcessorID。 nifi.provenance.repository
.indexed.attributes 这是FlowFile属性的逗号分隔列表,应该对这些属性进行索引并进行搜索。 这是默认的空白。 但是需要考虑的一些很好的例子是文件名,uuid和mime.type以及任何自定义的属性可能都是对你有价值的。 nifi.provenance.repository
.index.shard.size 在搜索Provenance Repository时,分片大小的较大值将导致更多的Java堆使用,但应提供更好的性能。 默认值是500 MB。 nifi.provenance.repository
.max.attribute.length 指示从存储库检索Provenance事件时FlowFile属性可以达到的最大长度。 如果任何属性的长度超过此值,则在检索事件时将被截断。 默认值是65536。
阅读全文
0 0
原创粉丝点击