无法在OSX上运行NiFi

时间:2017-10-27 05:28:03

标签: homebrew apache-nifi

我使用

在我的OSX机器上安装了NiFi
brew install nifi

这很好用,但是当我运行命令时

nifi run

我检查了nifi-app日志,这就是弹出的内容:

2017-10-27 00:24:26,211 WARN [main] org.apache.nifi.bootstrap.Command 
Launched Apache NiFi but could not determined the Process ID

我也试过了nifi start但是获得以下状态:

2017-10-27 00:26:48,081 INFO [main] org.apache.nifi.bootstrap.Command 
Apache NiFi is currently running, listening to Bootstrap on port 
50289, PID=unknown

不确定我是否需要编辑某些内容,但我对PID的关注是未知的。

编辑: 运行时

2017-10-27 11:14:13,809 ERROR [main] org.apache.nifi.NiFi Failure to 
launch NiFi due to java.util.ServiceConfigurationError: 
org.apache.nifi.processor.Processor: Provider 
org.apache.nifi.processors.standard.ParseCEF could not be instantiated
java.util.ServiceConfigurationError: 
org.apache.nifi.processor.Processor: Provider 
org.apache.nifi.processors.standard.ParseCEF could not be instantiated
    at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:581)
    at java.base/java.util.ServiceLoader.access$100(ServiceLoader.java:390)
    at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:799)
    at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:721)
    at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1389)
    at org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:142)
    at org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:117)
    at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:702)
    at org.apache.nifi.NiFi.<init>(NiFi.java:160)
    at org.apache.nifi.NiFi.main(NiFi.java:268)
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
    at org.apache.bval.jsr.ConfigurationImpl.parseValidationXml(ConfigurationImpl.java:357)
    at org.apache.bval.jsr.ConfigurationImpl.createBootstrapConfiguration(ConfigurationImpl.java:349)
    at org.apache.bval.jsr.ConfigurationImpl.prepare(ConfigurationImpl.java:340)
    at org.apache.bval.jsr.ConfigurationImpl.__privileged_doBuildValidatorFactory(ConfigurationImpl.java:329)
    at org.apache.bval.jsr.ConfigurationImpl.doBuildValidatorFactory(ConfigurationImpl.java)
    at org.apache.bval.jsr.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:324)
    at org.apache.nifi.processors.standard.ParseCEF.<init>(ParseCEF.java:179)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
    at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:777)
    ... 7 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 19 common frames omitted

2 个答案:

答案 0 :(得分:3)

我使用的是JDK 9.从今天开始,这不起作用。我降级到JDK 8,瞧!谢谢你们

答案 1 :(得分:1)

无需下载到JDK 8,但您确实需要安装它。

选择要运行的JDK

我有一个app(nifi),它在JDK 9上不起作用,所以我想切换JDK版本。

列出可能的版本

这是命令

 /usr/libexec/java_home -V

正确的输出

Matching Java Virtual Machines (2):
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_151, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home

设置Java-Home

如果只选择一个主要版本,你可以这样做

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

运行应用程序(nifi)

我现在只需要选择这个Java,然后将其导出。并运行启动脚本......

export JAVA_HOME=`/usr/libexec/java_home -v 1.8` tim@T-Mac-mini bin $ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) tim@TMac-mini bin $ ./nifi.sh run

它现在有效。