NiFi - java.lang.NoSuchMethodError

Posted

技术标签:

【中文标题】NiFi - java.lang.NoSuchMethodError【英文标题】: 【发布时间】:2017-04-26 17:50:56 【问题描述】:

我在我的 nifi 集群中看到一些奇怪的错误,我有一个 3node 安全的 nifi 集群,当我们在所有节点中部署时,我们有一些自定义库 nar 2 个节点启动时没有任何问题,但在一个节点中我看到以下内容错误。

2017-04-20 23:43:34,516 ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.lang.NoSuchMethodError: org.apache.nifi.processor.util.StandardValidators.createControllerServiceExistsValidator(Ljava/lang/Class;)Lorg/apache/nifi/components/Validator;
java.lang.NoSuchMethodError: org.apache.nifi.processor.util.StandardValidators.createControllerServiceExistsValidator(Ljava/lang/Class;)Lorg/apache/nifi/components/Validator;

【问题讨论】:

通常这意味着类路径上有同一个类的多个冲突版本,你有没有将任何 JAR 直接添加到 NiFi 的 lib 目录? 您可能还想通过查看 work/nar/extensions//META-INF/bundled-dependencies/ 来检查自定义 NAR 中捆绑的内容,并确保您不是捆绑 nifi-api @BryanBende 感谢您的回复。是的,我已在默认库目录中添加。有什么方法可以部署自定义库。 您应该只将 NAR 文件部署到 lib 目录(而不是其他 JAR),然后 NAR 应该捆绑它需要的所有 JAR。这就是你目前拥有的吗? 对不起,我已将自定义 Nars 添加到默认 lib 目录而不是 JARS 中。仅添加自定义 Nars 后,我才面临此问题。我已经检查了下面的路径,它没有捆绑与 api 相关的任何东西。 work/nar/extensions//META-INF/bundled-dependencies‌​/ 【参考方案1】:

您是否尝试过删除 work/ 目录下的 nar/ 文件夹,将您的 nars 添加到 lib/ 并重新启动 NiFi?通常,NiFi 在启动期间会扩展 nar 包。

另外,您是否扩展了任何标准处理器来构建定制的 NiFi 处理器?在这种情况下,您可能必须添加 nar 依赖项。

【讨论】:

以上是关于NiFi - java.lang.NoSuchMethodError的主要内容,如果未能解决你的问题,请参考以下文章

不要轻易在java ext 目录放任何三方jar包

Spark 和 Hbase-client 中的版本兼容性

大数据NiFi:NiFi架构

大数据NiFi(十七):NiFi术语

NIFI Apache NiFI 授权配置

NIFI Apache NiFI 使用技巧