2016-07-15 61 views
0

我正在使用Hortonworks HDF 1.2.0.1沙箱,我正在嘗試添加將包含在1.0 nifi版本中的PutHiveQL處理器。到目前爲止,我已經生成了.nar歸檔文件,但是當它被導入到/ lib目錄時,nifi不會再啓動了。我在nifi-app.log得到java.lang.UnsupportedClassVersionError添加自定義處理器後,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時)。我在我的系統中安裝了相同的,但我仍然得到相同的錯誤。任何有關如何解決這個問題的建議?謝謝!


編輯

我嘗試安裝nifi 0.7本地和添加自定義的處理器,但我得到了完全相同的行爲。

回答

2

如果您是從NiFi master(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,或者您可以獲得最新的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

相關問題