问题标签 [apache-nifi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2745 浏览

jsonpath - 字符串数组过滤器的 Jayway Jsonpath 语法?

我正在尝试在 Nifi 中使用 EvaluateJsonPath 处理器,但在使用 jayway jsonpath 语法时遇到了问题。我的对象如下所示:

我想根据标签路由消息 - 我希望包含“xyz”的所有内容都以一种方式路由,而不包含它的所有内容都以另一种方式路由。使用http://jsonpath.herokuapp.com/我一直在测试并试图找出基于包含匹配字符串数组的 json 对象进行过滤的语法。我可以根据明显的索引进行匹配(所以$.[?(@.tags[1] =~ /xyz/i)]工作得很好),但我不能保证标签字段中对象的顺序或数量。

有没有办法在 jayway json 模块中做到这一点?我看到根据我尝试过的 JSONPATH 中的数组中的字符串过滤 Json,但它似乎在上面的模拟器中不起作用。

0 投票
2 回答
1046 浏览

apache-nifi - Flowfiles如何分布在集群节点上?

例如,如果我有一个指定为隔离的 GetFile 处理器,那么来自该处理器的流文件如何分布在集群节点上?

是否需要添加任何额外的工作/处理器?

0 投票
2 回答
5561 浏览

apache-nifi - MergeContent 与 nifi - 长度不一致

我正在尝试使用 MergeContent 处理器在磁盘上写入一个文件,但我得到的文件大小显着不同 - 从一行到 806 行不等。我已经多次重复这个过程,试图找出Apache NIFi MergeContent 处理器中解决的换行符分隔符 - 将分隔符设置为新行,我得到了非常随机大小的文件。

我需要设置哪些参数才能遵守以下逻辑?

  1. 建立一个单一的bin
  2. 将所有流文件路由到 bin
  3. 如果 len(bin)>X 或者 bin 的年龄大于 Max Bin Age,则释放 bin

为了完整记录,我目前定义了以下属性: 合并内容处理器设置 合并内容处理器设置

如您所见,我按照https://github.com/apache/nifi/blob/31fba6b3332978ca2f6a1d693f6053d719fb9daa/nifi-nar-bundles/nifi-standard-bundle中的语法将“Max Bin Age”设置为“10 sec” /nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java#L219(这是我设法找到此值示例的唯一地方,文档似乎不完整在这个参数上)

我已将“最大条目数”设置为 5000,将“最大垃圾箱数”设置为 1

我需要做什么来按照上述逻辑汇总我的记录?我还尝试使用“相关属性名称”参数,其属性保证在到达这一点的所有文档上都是相同的,并且看到了相同的

0 投票
1 回答
2173 浏览

java - Apache NIFI:将文件添加到目录后直接运行 Java 进程

我对 Apache NIFI 相当陌生。

我想设置一个流程,其中有一个文件被放入“热文件夹”。如果此文件夹检测到放入其中的文件,则此文件将被放入另一个名为“输入”的文件夹中。一旦文件被复制到输入文件夹中,我想触发一个 Java 程序来运行。

我解决这个问题的方法是创建一个“GETFILE”处理器来从热文件夹中获取文件。然后创建一个 PUTFILE 处理器将其放入输入文件夹中。所以你可以想象在'GETFILE'和'PUTFILE'处理器之间有一个连接链接。这按预期工作。

然而,我面临的挑战是,当文件复制到 INPUT 文件夹时(即在 PUTFILE 处理器执行后),触发我的 Java 进程运行。我无法在 PUTFILE 和 EXECUTEPROCESS 处理器之间创建链接(作为告诉 NIFI 在文件从热文件夹复制到输入文件夹后运行 Java 进程的一种方式)。我似乎无法获得连接 PUTFILE 和 EXECUTEPROCESS 处理器之间的连接箭头(因为 NIFI 不允许我这样做)。

根据上面的描述,有没有人可以推荐一种方法来告诉 NIFI 在检测到文件被添加到输入文件夹后触发 Java 应用程序运行?

谢谢。

0 投票
1 回答
298 浏览

solr - 从 Nutch 将 SolrRecord 添加到索引的时间

我正在运行 Solr 5.4.1 和 Nutch 1.11 我也在使用 Apache Nifi,尤其是 GetSolr 处理器。

我知道 SolrRecord 中的 tstamp 是获取索引中的值的时间。

我面临的挑战是让 GetSolr 流程在无人值守的 NiFi 中工作,我需要提供一个日期字段来过滤。如果我使用 tstamp,它只会在第一次填充我的数据流,之后 tstamp 过滤器会排除未来值,因为它正在查看索引时间,而不是记录被摄取到 Solr 中的时间。

所以我的问题是:如何在 bin\nutch 索引时在我的 SolrRecord 中包含一个字段,该字段将包括插入 Solr 的时间戳,而不是由爬虫获取。

0 投票
1 回答
1572 浏览

java - 由于本地 maven 依赖项 jar 中的 java.lang.NoClassDefFoundError 导致 Apache Nifi 失败。

这是我第一次使用maven,我想为apache-nifi实现一个处理器。现在为此我使用了一个专有的 jar 文件,它是一个 SDK。它不在存储库中。因此我把它放在pom.xml下面。

我正在使用intelliJwhich 导入此依赖项似乎没有问题。Maven构建过程也是如此。

我按照本教程mvn clean install中的说明使用。这给了我一个包作为输出。(没有构建错误)nar

nar应该放在目录中的this$NIFI_HOME/lib不会捆绑所述本地 jar。

如果我将此 nar 文件放在所需的目录中并启动apache-nifi

似乎是由 加载的NarClassLoaders,但之后我得到一个异常并且nifi没有启动。

SubscriptionInterface是来自上述本地 jar 的类。

如果我查看nar文件的文件夹结构,META-INF/bundled-dependencies/我会看到在 pom 中定义的所有其他依赖 jar 文件,但没有看到我使用的本地 jar。

如何克服这一点?

0 投票
1 回答
731 浏览

regex - 使用 Apache Nifi 提取 HL7 值并应用正则表达式

我需要使用 Apache Nifi 从 HL7 XML 文档中提取患者信息,并应用正则表达式从包含嵌入式 HTML 的部分中提取诊断结果(是的,对不起。不是我的设计选择:-()

HL7 中感兴趣的数据的第一个路径是:

“临床文档”\“记录目标”\“患者角色”\“患者”\“姓名”

第二个,更复杂的是:

"ClinicalDocument" \ "structuredBody" \ "component" \ "section" \ "text @mediaType="text/x-hl7-text+xml""其中标题元素的值等于 "Diagnostic Results"

我需要匹配组件内 具有值“诊断结果”(诊断结果)的部分标题的子节点文本值的文本,然后提取对等节点文本的文本值。

我的 HL7 XML 片段如下所示:

关于如何在 Apache Nifi 中执行此操作的任何建议?

0 投票
1 回答
1761 浏览

apache-nifi - 如何从命令行执行 nifi 数据流

我在 nifi 中准备了一个数据流。有没有办法从命令行执行它。?

谢谢你,Srujana

0 投票
1 回答
216 浏览

apache-nifi - Ambari 与 Nifi 有什么区别……这些风筝、香蕉在 Ambari 或 Nifi 中是如何使用的?

请分享一个例子。Zepllin,Ambari,Nifi,Banana,Kite used soley used soley used without kafka or flume

0 投票
1 回答
1261 浏览

apache-nifi - 跨 NiFi 处理器传递数据

我的情况涉及自定义处理器参与 ETL 管道的各个阶段:

Processor_1 -> Processor_2 -> Processor_3

对于某些用例,Processor_3 需要参考输入到 Processor_1 的原始数据。流文件定义中有父引用的概念。

粗略的方法是将原始数据与流文件从Processor_1 传递到Processor_2 到Processor_3。是否有下游处理器引用原始数据的机制?