【问题标题】:Apache Nifi doesn't start after adding custom processor添加自定义处理器后 Apache Nifi 无法启动
【发布时间】:2016-07-15 22:40:30
【问题描述】:

我正在使用 Hortonworks HDF 1.2.0.1 沙箱,我正在尝试添加 PutHiveQL 处理器,它将包含在 1.0 nifi 版本中。到目前为止,我已经生成了 .nar 存档,但是当它被导入 /lib 目录时,nifi 不再启动。我在nifi-app.log 中得到一个java.lang.UnsupportedClassVersionError

2016-07-15 13:22:37,158 ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi 
due to java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: 
Provider nifi.test.processors.PutHiveQL could not be 
 instantiated java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider nifi.test.processors.PutHiveQL could not be instantiated
    at java.util.ServiceLoader.fail(ServiceLoader.java:224) ~[na:1.7.0_95]
    at java.util.ServiceLoader.access$100(ServiceLoader.java:181) ~[na:1.7.0_95]
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377) ~[na:1.7.0_95]
    at java.util.ServiceLoader$1.next(ServiceLoader.java:445) ~[na:1.7.0_95]
    at org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:107) ~[nifi-nar-utils-0.6.0.1.2.0.1-1.jar:0.6.0.1.2.0.1-1]
    at org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:88) ~[nifi-nar-utils-0.6.0.1.2.0.1-1.jar:0.6.0.1.2.0.1-1]
    at org.apache.nifi.NiFi.<init>(NiFi.java:120) ~[nifi-runtime-0.6.0.1.2.0.1-1.jar:0.6.0.1.2.0.1-1]
    at org.apache.nifi.NiFi.main(NiFi.java:227) ~[nifi-runtime-0.6.0.1.2.0.1-1.jar:0.6.0.1.2.0.1-1] 

Caused by: java.lang.UnsupportedClassVersionError: org/apache/nifi/processor/util/StandardValidators : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.7.0_95]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) ~[na:1.7.0_95]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.7.0_95]
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) ~[na:1.7.0_95]
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) ~[na:1.7.0_95]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.7.0_95]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_95]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_95]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_95]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_95]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_95]
    at nifi.test.processors.PutHiveQL.<clinit>(PutHiveQL.java:73) ~[nifi-hiveQLProcessor-1.0-SNAPSHOT.nar-unpacked/:na]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_95]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_95]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_95]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_95]
    at java.lang.Class.newInstance(Class.java:383) ~[na:1.7.0_95]
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373) ~[na:1.7.0_95]
    ... 5 common frames omitted

好像runtime jdk和用于编译的jdk不一样。我检查了 nifi,它使用的是 jdk 1.7(当我在我的机器上运行 1.8 时)。我在我的系统中安装了相同的,但我仍然得到同样的错误。关于如何解决这个问题的任何建议?谢谢!


编辑

我尝试在本地安装 nifi 0.7 并添加自定义处理器,但我得到了完全相同的行为。

【问题讨论】:

    标签: java hadoop hive hortonworks-data-platform apache-nifi


    【解决方案1】:

    如果您从 NiFi 主 (1.0.0) 分支构建 Hive NAR,它将为 Java 1.8 编译它,这可能不适用于 HDF 1.2.0.1,因为它是为 Java 1.7 编译的。 NiFi 1.0.0 至少要迁移到 Java 1.8。

    您可以查看 NiFi 的 0.x 分支并从那里构建 Hive 处理器,因为那仍然是 Java 1.7,或者您可以获得已经具有 Hive NAR 的最新 0.7.0 NiFi 版本,然后从那里获取 NAR lib目录:

    https://nifi.apache.org/download.html

    【讨论】:

    • 如果我想使用 HDF,我似乎没有可用的选项,对吧?您认为删除 HDF 的 nifi 安装并手动安装 0.7 版是否可行(关于此 jdk 问题)?
    • 如果你拿一个干净的HDF 1.2.0.1 把这个NAR central.maven.org/maven2/org/apache/nifi/nifi-hive-nar/0.7.0/… 放到lib目录下,是不是不行?
    猜你喜欢
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多