2016-07-15 11 views
0

Ich benutze Hortonworks HDF 1.2.0.1 Sandbox und ich versuche, die PutHiveQL Prozessor hinzufügen, die in der 1.0 Nifi Release enthalten sein wird. Bisher habe ich das .nar-Archiv erstellt, aber nifi startet nicht mehr, wenn es in das Verzeichnis/lib importiert wird. Ich erhalte eine java.lang.UnsupportedClassVersionError im nifi-app.log:Apache Nifi startet nicht nach dem Hinzufügen von benutzerdefinierten Prozessor

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 

scheint, wie die Laufzeit jdk und derjenige verwendet für die Erstellung ist nicht das gleiche. Ich habe nifi überprüft, und es verwendet jdk 1.7 (während ich 1.8 auf meinem Rechner lief). Ich habe das gleiche in meinem System installiert, aber ich bekomme immer noch den gleichen Fehler. Irgendwelche Vorschläge, wie das zu beheben ist? Vielen Dank!


EDIT

versuchte ich nifi 0,7 lokal und das Hinzufügen der benutzerdefinierten Prozessor installieren, aber ich exakt das gleiche Verhalten zu bekommen.

Antwort

2

Wenn Sie den Hive NAR vom NiFi Master (1.0.0) Zweig erstellt haben, kompiliert er ihn für Java 1.8, was wahrscheinlich nicht mit HDF 1.2.0.1 funktionieren wird, da dieser für Java 1.7 kompiliert wurde. NiFi 1.0.0 wird mindestens auf Java 1.8 umgestellt.

Sie könnten den 0.x-Zweig von NiFi auschecken und die Hive-Prozessoren von dort bauen, weil das immer noch Java 1.7 ist, oder Sie können das neueste 0.7.0 NiFi-Release bekommen, das bereits den Hive NAR hat und einfach den NAR nimmt aus dem lib:

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

+0

Scheint, als ob ich keine verfügbaren Optionen, wenn ich möchte HDF verwenden, nicht wahr? Denkst du, es würde funktionieren (bezüglich dieses jdk-Problems), die nifi-Installation des HDF zu entfernen und die Version 0.7 manuell zu installieren? – riccamini

+1

Wenn Sie eine saubere HDF 1.2.0.1 nehmen und diese NAR http://central.maven.org/maven2/org/apache/nifi/nifi-hive-nar/0.7.0/nifi-hive-nar-0.7 nehmen. 0nar und lege es in das lib-Verzeichnis, funktioniert das nicht? –

+0

Ja, es funktioniert. Danke, ich habe es sehr geschätzt – riccamini