Java 将GCP控制器服务与自定义NiFi处理器一起使用

Java 将GCP控制器服务与自定义NiFi处理器一起使用,java,apache-nifi,Java,Apache Nifi,我已经编写了一个自定义NiFi处理器,用于在BigQuery上执行一些任务。我希望能够重新使用NiFi附带的GCP凭据提供程序控制器服务来进行身份验证。这可能吗?我尝试将nifi gcp processors maven依赖项添加到我的项目中,它成功构建,但当我尝试使用nar启动nifi时,失败并显示此错误消息 2017-12-14 05:09:27,406 ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.

我已经编写了一个自定义NiFi处理器,用于在BigQuery上执行一些任务。我希望能够重新使用NiFi附带的GCP凭据提供程序控制器服务来进行身份验证。这可能吗?我尝试将nifi gcp processors maven依赖项添加到我的项目中,它成功构建,但当我尝试使用nar启动nifi时,失败并显示此错误消息

2017-12-14 05:09:27,406 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.gcp.storage.PutGCSObject could not be instantiated
java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider org.apache.nifi.processors.gcp.storage.PutGCSObject could not be instantiated
    at java.util.ServiceLoader.fail(ServiceLoader.java:232)
    at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
    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: com/google/cloud/HttpServiceOptions
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructor0(Class.java:3075)
    at java.lang.Class.newInstance(Class.java:412)
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
    ... 7 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.google.cloud.HttpServiceOptions
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 12 common frames omitted
2017-12-14 05:09:27,408 INFO [Thread-1] org.apache.nifi.NiFi Initiating shutdown of Jetty web server...
2017-12-14 05:09:27,408 INFO [Thread-1] org.apache.nifi.NiFi Jetty web server shutdown completed (nicely or otherwise).
2017-12-14 05:09:27406错误[main]org.apache.nifi.nifi由于java.util.ServiceConfigurationError:org.apache.nifi.processor.processor:Provider org.apache.nifi.processors.gcp.storage.PutGCSObject无法实例化而无法启动nifi
java.util.ServiceConfigurationError:org.apache.nifi.processor.processor:Provider org.apache.nifi.processors.gcp.storage.PutGCSObject无法实例化
在java.util.ServiceLoader.fail处(ServiceLoader.java:232)
在java.util.ServiceLoader.access$100(ServiceLoader.java:185)
位于java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
位于java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
位于java.util.ServiceLoader$1.next(ServiceLoader.java:480)
位于org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:142)
位于org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:117)
位于org.apache.nifi.web.server.JettyServer.start(JettyServer.java:702)
位于org.apache.nifi.nifi.(nifi.java:160)
位于org.apache.nifi.nifi.main(nifi.java:268)
原因:java.lang.NoClassDefFoundError:com/google/cloud/HttpServiceOptions
位于java.lang.Class.getDeclaredConstructors0(本机方法)
位于java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
位于java.lang.Class.getConstructor0(Class.java:3075)
位于java.lang.Class.newInstance(Class.java:412)
位于java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
... 省略了7个公共框架
原因:java.lang.ClassNotFoundException:com.google.cloud.HttpServiceOptions
位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 省略了12个公共框架
2017-12-14 05:09:27408信息[Thread-1]org.apache.nifi.nifi启动Jetty web服务器的关闭。。。
2017-12-14 05:09:27408信息[Thread-1]org.apache.nifi.nifi Jetty web服务器关闭已完成(无论是否正常)。

可以在自定义处理器中重用GCPCredentialsControllerService。您可能缺少nifi gcp NAR上的“NAR依赖项”,这将允许nifi将您的处理器与gcp凭据服务正确匹配。这是在自定义流程包的NAR输出项目的pom.xml文件中设置的,如“my processors NAR”。它可能看起来像:

<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-gcp-nar</artifactId>
    <version>1.4.0</version>
    <type>nar</type>
</dependency>

org.apache.nifi

有关详细信息,请参阅NiFi开发者指南。

可以在自定义处理器中重用GCPCredentialsControllerService。您可能缺少nifi gcp NAR上的“NAR依赖项”,这将允许nifi将您的处理器与gcp凭据服务正确匹配。这是在自定义流程包的NAR输出项目的pom.xml文件中设置的,如“my processors NAR”。它可能看起来像:

<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-gcp-nar</artifactId>
    <version>1.4.0</version>
    <type>nar</type>
</dependency>

org.apache.nifi
有关更多详细信息,请参阅NiFi开发人员指南