我正在使用hortonworkshdf1.2.0.1沙盒,我正在尝试添加puthiveql处理器,它将包含在1.0nifi版本中。到目前为止,我已经生成了.nar归档文件,但是当它被导入/lib目录时,nifi不再启动。我得到一个 java.lang.UnsupportedClassVersionError
在 nifi-app.log
:
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
似乎运行时jdk和用于编译的jdk不一样。我已经检查了nifi,它使用的是jdk1.7(当我在我的机器上运行1.8时)。我已经在我的系统中安装了相同的程序,但是仍然会出现相同的错误。有没有关于如何解决这个问题的建议?谢谢您!
编辑
我尝试在本地安装nifi0.7并添加自定义处理器,但得到了相同的行为。
1条答案
按热度按时间zbsbpyhn1#
如果您从nifi master(1.0.0)分支构建了hive nar,那么它是为java1.8编译的,而java1.8可能无法与hdf1.2.0.1一起工作,因为它是为java1.7编译的。nifi1.0.0正在向java1.8迁移。
您可以 checkout nifi的0.x分支并从那里构建配置单元处理器,因为它仍然是java 1.7,或者您可以获得最新的0.7.0 nifi版本,该版本已经有配置单元nar,只需从lib目录获取nar即可:
https://nifi.apache.org/download.html