Apache NiFi 是一个强大的数据流处理工具,通过其 REST API,用户可以远程管理和控制数据流处理器。本文将介绍如何使用 NiFi 1.25 版本HTTPS 模式下Rest API,包括获取 token、获取组件信息、启动和停止组件、以及更改组件的调度频率等操作。
1. Rest API 简介及适用场景
NiFi 的 Rest API 允许用户通过 HTTP 请求来管理和监控数据流处理器。这种灵活性使得用户可以自动化工作流程、集成 NiFi 到其他系统中,或者创建定制化的管理界面。
适用场景:
自动化数据流的启动和停止。
实时监控数据流处理器的状态和性能指标。
动态地更新数据流处理器的配置。
2. 如何获取 Token
在NiFi HTTPS模式下使用Rest API,需要进行身份验证。通常使用 OAuth 2.0 的 Bearer Token 进行认证。
获取 Token 的步骤:
配置NiFi的安全策略,确保Rest API可以通过 HTTPS 进行访问。
使用用户名和密码或其他认证方式获取 Bearer Token。这通常需要使用NiFi提供的身份验证端点进行请求。
# 提示:这里是使用url进行演示。生产环境中,可以使用java实现类似请求。
# 要注意的是:用户名密码的安全性。如果使用spring微服务架构,可以将其配置到nacos中
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=admin&password=mypassword123456' \
"https://ip:9443/nifi-api/access/token" --insecure
成功请求后,会返回一个token字符串。
3. 如何获取组件信息
获取 NiFi 中组件(如处理器)的信息是常见的操作,用于监控和配置调整。
获取组件信息的示例:
使用的Rest API:
首先要拿到组件的ID,拼接到Rest API地址中:
其次,要将token放到请求头,如下图使用postman工具所示,注意:图中返回json中的version值,后面要用到。
4. 如何启动组件
启动一个处于停止状态的组件是日常操作之一。
启动组件的示例如下,将下面的json放到截图所示的body中:
{
"component": {
"id": "11af14aa-1afb-1215-c6e9-3fb8412b2731",
"state": "RUNNING"
},
"revision": {
"version": 22
}
}
5. 如何停止组件
停止一个正在运行的组件同样重要。
停止组件的示例,将下面的json放到截图所示的body中:
{
"component": {
"id": "11af14aa-1afb-1215-c6e9-3fb8412b2731",
"state": "STOPPED"
},
"revision": {
"version": 23
}
}
6. 如何更改一个组件的调度频率
调整组件的调度频率可以根据实际需求灵活配置。更改组件调度频率之前,请先停止组件,更改频率成功后,再启动组件。
更改调度频率的示例:
curl -X PUT 'https://ip:9443/nifi-api/processors/11af14aa-1afb-1215-c6e9-3fb8412b2731' -d '{ "revision": { "version": 25 }, "component": { "id": "11af14aa-1afb-1215-c6e9-3fb8412b2731", "config": { "schedulingPeriod": "6 min" } }}' -H "Content-Type: application/json" -H 'Authorization: Bearer eyJraWQiOiJjZmRhNmM2Yi0zY2FmLTQwYTctODQ3Ny1lMzVkMzA0MDdkYjciLCJhbGciOiJQUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImF1ZCI6Imh0dHBzOi8vbmlmaTo5NDQzIiwibmJmIjoxNzIwOTMwMjEyLCJpc3MiOiJodHRwczovL25pZmk6OTQ0MyIsImdyb3VwcyI6W10sInByZWZlcnJlZF91c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNzIwOTU5MDEyLCJpYXQiOjE3MjA5MzAyMTIsImp0aSI6ImQzMThiMzViLWUyYTUtNGI1Ny1iMzcyLTUwNGQ1ODU2Mjc2ZiJ9.ZBTEIaJEfoPn7riVBRfvRL0z1FoIE-3ISOPKFoQzkxck-ccQDZztgC9ZkOfnORKvBCPDsqss6VXR--TjoRsAao4Ymqm7uOdqcUfUF8rq50O0MlpchI0LhYo_T6SKQLaUtIiNOkEriF6vRzb19QDX4wEDjTZyO8tKQu5covgcIZ5qaDgD7J6jqR0XiEk3BBd5IZsJpQgBcy_j6qgo8bJTZI7oKWcZGuNzfXIQTb5iEKVPQIiQTEDHQaC8RtdxqPDDHe-YlbDykIXEJKc7QE6nZcd_sjDOtPNiNcTgFoOFA7jKBUXkBWkALpRTnyHrLFPLNSCQMDzn9xpJGgAc4etw8p0oLFOvCQlyega2t2qZRhZVH5JA_sYXTCFgUeq-u5iZUlBoW9Kc_25sefLy4A6eGYhe96E_q_8Dp5VT-Lt0NKXSug1-QUUJ-zTioL_nCbFkryutGkFLhh7z1i3x8Dq6mRJxavmYd8kkPtBUADucBb77EigS-Tas9Lwuto4a3BdNxQ3wiHspzsUnrCAw5dElN7m1-Gk5xP2FG_7bb7bb2cNU-1pkLZk3J4pUDm_YOUurC3X01qT7wwfSS52oZCdh6gtT8kylyHxdPRLZo3U8fl6Dvju0FlRW6NyZU53ND176EyzfL7JEshtFmOYB3W48gzhEtBi2m0-6GWljW-MQmEE' --compressed --insecure
7. 总结本文,指出后续示例
本文介绍了如何使用 NiFi1.25版本HTTPS模式下的 Rest API 进行基本操作,包括身份验证、获取组件信息、启动和停止组件,以及修改组件的配置。通过这些操作,用户可以更好地管理和控制NiFi中的数据流处理器。
建议进一步深入了解NiFi的 Rest API文档和实际应用场景,以更好地利用其强大的管理和控制能力。
通过这些示例和操作,希望读者能够快速上手NiFi的RestAPI,并在实际应用中发挥其优势。
NiFI工具学起来,没那么难,用起来真的很丝滑。为自己的NiFi视频教程做个广告:https://edu.csdn.net/course/detail/38508