2016-07-15 8 views
0

Я использую песочницу Hortonworks HDF 1.2.0.1, и я пытаюсь добавить процессор PutHiveQL, который будет включен в версию 1.0 nifi. Пока я создал архив .nar, но nifi больше не запускается, когда он импортируется в каталог/lib. Я получаю java.lang.UnsupportedClassVersionError в nifi-app.log:Apache Nifi не запускается после добавления пользовательского процессора

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 и один используется для компиляции не то же самое. Я проверил nifi, и он использует jdk 1.7 (пока я запускал 1.8 на своей машине). Я установил то же самое в своей системе, но я все равно получаю ту же ошибку. Любое предложение о том, как это исправить? Спасибо!


EDIT

Я попытался установить Nifi 0,7 локально и добавить пользовательский процессор, но я получаю то же самое точное поведение.

ответ

2

Если вы построили ветку Hive NAR из ветки NiFi master (1.0.0), она компилирует ее для Java 1.8, которая, вероятно, не будет работать с HDF 1.2.0.1, потому что она была скомпилирована для Java 1.7. NiFi 1.0.0 как минимум работает на Java 1.8.

Вы можете проверить ветвь 0.x NiFi и построить процессоры Hive оттуда, потому что это все еще Java 1.7, или вы можете получить последнюю версию 0.7.0 NiFi, у которой уже есть Hive NAR, и просто взять NAR из Lib каталога:

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

+0

Кажется, у меня нет никаких доступных вариантов, если я хотел бы использовать HDF, верно? Считаете ли вы, что это сработает (в связи с этой проблемой jdk), удалив установку HDF nifi и вручную установив версию 0.7? – riccamini

+1

Если вы берете чистый HDF 1.2.0.1 и принимаете этот NAR http://central.maven.org/maven2/org/apache/nifi/nifi-hive-nar/0.7.0/nifi-hive-nar-0.7. 0.nar и поместить его в каталог lib, не работает ли он? –

+0

Да, это действительно работает. Спасибо, я очень оценил – riccamini

 Смежные вопросы

  • Нет связанных вопросов^_^