如何启动所有处理器

时间:2018-08-06 11:17:34

标签: apache-nifi

我在测试环境上运行了NiFi,并希望它自动启动所有处理器,作为部署的最后一步。

我是否需要解析所有处理器ID并点击/ nifi-api / processors端点,或者是否可以全部启动-例如从/ nifi-api / process-groups端点?

我的NiFi流具有uuid 66f83c1d-0162-1000-baff-01e60296540a-此GET curl语句成功返回信息:

curl -i -X GET http://localhost:9090/nifi-api/process-groups/66f83c1d-0162-1000-baff-01e60296540a

但是尝试输入状态失败:

curl -i -X PUT -H 'Content-Type: application/json' -d '{"status":"RUNNING"}' http://localhost:9090/nifi-api/process-groups/66f83c1d-0162-1000-baff-01e60296540a
HTTP/1.1 400 Bad Request
Date: Mon, 06 Aug 2018 11:08:15 GMT
X-Frame-Options: SAMEORIGIN
Content-Type: text/plain
Vary: Accept-Encoding
Content-Length: 429
Server: Jetty(9.4.3.v20170317)

Cannot construct instance of `org.apache.nifi.web.api.dto.status.ProcessGroupStatusDTO` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('RUNNING')
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 11] (through reference chain: org.apache.nifi.web.api.entity.ProcessGroupEntity["status"])

1 个答案:

答案 0 :(得分:5)

,通过使用NiFi RestApi,我们可以启动处理器组中的所有处理器

由于您在json中缺少 id 键值,

  

{“ id”:“ 66f83c1d-0162-1000-baff-01e60296540a” ,“状态”:“ RUNNING”}

我们需要提及状态而不是状态来运行/停止组中的处理器

  

{“ id”:“ 66f83c1d-0162-1000-baff-01e60296540a”,“状态”:“ RUNNING” }

,我们需要在其余api的地址中包括 flow

  

http://localhost:9090/nifi-api / flow / process-groups / 66f83c1d-0162-1000-baff-01e60296540a

尝试使用以下Curl命令

curl -i -X PUT -H 'Content-Type: application/json' -d '{"id":"66f83c1d-0162-1000-baff-01e60296540a","state":"RUNNING"}' http://localhost:9090/nifi-api/flow/process-groups/66f83c1d-0162-1000-baff-01e60296540a

有关使用RestAPI的启动进程组的更多详细信息,请参见this