Apache Nifi не запускается после добавления пользовательского процессора

Я использую песочницу Hortonworks HDF 1.2.0.1 и пытаюсь добавить PutHiveQL, который будет включен в выпуск 1.0 nifi. Пока что я сгенерировал архив .nar, но nifi больше не запускается при импорте в каталог /lib. Я получаю 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 и та, которая используется для компиляции, не совпадают. Я проверил nifi, и он использует jdk 1.7 (пока я работал с 1.8 на своей машине). Я установил то же самое в своей системе, но я все еще получаю ту же ошибку. Любое предложение о том, как это исправить? Благодарю вас!


ИЗМЕНИТЬ

Я попытался установить nifi 0.7 локально и добавить собственный процессор, но у меня точно такое же поведение.


person riccamini    schedule 15.07.2016    source источник


Ответы (1)


Если вы собрали 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

person Bryan Bende    schedule 15.07.2016
comment
Похоже, у меня нет доступных вариантов, если я хочу использовать HDF, верно? Как вы думаете, сработает ли (относительно этой проблемы с jdk) удаление установки HDF nifi и ручная установка версии 0.7? - person riccamini; 15.07.2016
comment
Если взять чистый HDF 1.2.0.1 и взять этот NAR central.maven.org/maven2/org/apache/nifi/nifi-hive-nar/0.7.0/ и поместите его в каталог lib , не работает? - person Bryan Bende; 15.07.2016