【问题标题】:can we communicate with nifi through cli?我们可以通过cli与nifi通信吗?
【发布时间】:2017-01-11 14:16:23
【问题描述】:

是否有可能通过命令行与 nifi 进行通信。例如:

  1. 我想启动/停止处理器组中的特定处理器?
  2. 我想列出处理器组中的处理器?

我知道我们可以在浏览器中完成,但我想知道我们是否可以连接 nifi 并访问它?

我的最后一个问题是,nifi 只有一个带有 flow.xml 的画布吗?当我们拥有庞大的处理器和流程组时,我们如何才能使用与现有画布不同的单独画布创建新流程?

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    根据 olisteadman 的回答,对于 1.9.2 及更高版本,有一个 CLI 作为 NiFi 工具包的一部分。


    没有特定的 Apache NiFi CLI 工具,但 UI 是 REST 服务,因此引用此 REST API[1],您可以使用 curl[2] 等 CLI 工具执行任何命令。

    对于 #1,这里是一个示例 CURL 命令,用于启动我在此处找到的处理器[3]:

    curl 'http://localhost:8080/nifi-api/processors/2a817541-0158-1000-771e-93ca6d670429' -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json, text/javascript, */*; q=0.01' --data-binary '{"revision":{"clientId":"2a81087c-0158-1000-1362-5452a699615c","version":3},"component":{"id":"2a817541-0158-1000-771e-93ca6d670429","state":"RUNNING"}}'
    

    对于第 2 号,只需使用文档中的“/process-groups/{id}”的 api。

    当然,这些命令会根据您的 NiFi 实例是否安全而改变。

    至于多画布,目前尚不支持,但我之前听人提到过。我建议向 Apache NiFi 用户列表[4] 发送一个讨论线程来讨论该功能。

    [1]https://nifi.apache.org/docs/nifi-docs/rest-api/index.html

    [2]https://curl.haxx.se/

    [3]https://community.hortonworks.com/questions/64771/unable-to-updateexecute-processor-though-nifi-rest.html#

    [4] users@nifi.apache.org

    【讨论】:

    • 它有效,谢谢。上面的命令(PUT 语句)是更新处理器。我们如何删除处理器?我试图用 DELETE 替换 PUT,但它抛出错误“必须指定修订版。”。
    • 现在有一个 NiFi CLI(截至 2018 年 1 月)...请参阅下面/上面的答案(2019 年 6 月发布)。
    【解决方案2】:

    现在有一个 NiFi CLI(截至Jan 2018)。

    here(@tim-spann)捕获了一些有用的示例命令。

    享受吧!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2011-04-26
    • 2019-05-13
    相关资源
    最近更新 更多