Apache NIFI中文文档 地址:https://nifichina.github.io/
1.简介
官网的介绍:
An easy to use, powerful, and reliable system to process and distribute data.
一个易用、功能强大、可靠的处理和分发数据的系统。
来自网络的介绍:
- 2006年由美国国家安全局(NSA)的Joe Witt创建,之后在2014年贡献给Apache社区,随后在2015 年成为Apache顶级项目之一。
- 是一个易于使用、功能强大而且可靠的流式数据处理和分发系统。
- 是为数据流设计,支持从多种数据源动态的拉取数据,并基于WEB图形界面,通过拖拽、连接、配置完成基于流程的编程,实现数据采集、处理等功能。
- 目前,NiFi 社区活跃度非常高,其中 Cloudera 是最大的贡献者,仅2020年就发布了7个版本。NiFi 作为一个致力于数据对接的集成框架在物联网IOT和大数据领域得到很多公司的青睐。
我数了一下,截止2022年10月发布的版本也已经7个了。
2.下载安装配置启动
- 最近的两个版本(下载页面):https://nifi.apache.org/download.html
- 全版本(下载页面):https://archive.apache.org/dist/nifi/
- 官方(文档):https://nifi.apache.org/docs.html
2.1 下载
本次选择最新版本1.18.0
进行下载安装:
2.2 安装
# 解压文件 unzip nifi-1.18.0-bin.zip
2.3 配置
# 配置环境变量 cat <<'EOF' > /etc/profile.d/nifi.sh export NIFI_HOME=/usr/local/nifi-1.18.0 export PATH=$PATH:${NIFI_HOME}/bin EOF sleep 1 source /etc/profile.d/nifi.sh # 修改https的host和port nifi.web.https.host=tcloud nifi.web.https.port=58080
更多配置根据业务需求进行设置,这里暂时不进行详细的说明。
2.4 启动
# 添加到服务 nifi.sh install # 前台启动 nifi.sh run # 后台启动 nifi.sh start # 启动信息 Java home: /usr/local/java/jdk1.8.0_241 NiFi home: /usr/local/nifi-1.18.0 Bootstrap Config File: /usr/local/nifi-1.18.0/conf/bootstrap.conf # 查看 jps # 查看结果 9353 NiFi 9326 RunNiFi 9375 Jps # 查看启动日志 tail -f ${NIFI_HOME}/logs/nifi-app.log
首次启动时${NIFI_HOME}/logs/nifi-app.log
日志会打印默认的登录用户和密码:
2.5 登录
登录页面:
首次登录成功:
3.问题处理
3.1 host及port配置
仅配置http时会报错:Remote input HTTPS is enabled but nifi.web.https.port is not specified.
# 仅配置HTTP Caused by: java.lang.RuntimeException: Remote input HTTPS is enabled but nifi.web.https.port is not specified.
http和https都配置则报错:Both nifi.web.https.port and nifi.web.http.port specified
# HTTP和HTTPS都进行配置 java.lang.IllegalStateException: Invalid port configuration in nifi.properties: Both nifi.web.https.port and nifi.web.http.port specified
在Linux服务器上https使用默认的host127.0.0.1
web页面将无法访问。需要配置为hostname映射的ip地址:
INFO [main] org.apache.nifi.web.server.JettyServer NiFi has started. The UI is available at the following URLs: INFO [main] org.apache.nifi.web.server.JettyServer https://tcloud:58080/nifi
3.2 Username和Password
首次启动时${NIFI_HOME}/logs/nifi-app.log
日志会打印默认的登录用户和密码:
但是这个用户名和密码都是很长不容易记忆的,一下是官网设置密码的方法:
实践:
# 官方命令 $ ./bin/nifi.sh set-single-user-credentials <username> <password> # 实例 [root@tcloud nifi-1.18.0]# ./bin/nifi.sh set-single-user-credentials admin admin12345678 # 打印的信息 Java home: /usr/local/java/jdk1.8.0_241 NiFi home: /usr/local/nifi-1.18.0 Bootstrap Config File: /usr/local/nifi-1.18.0/conf/bootstrap.conf Login Identity Providers Processed [/usr/local/nifi-1.18.0/./conf/login-identity-providers.xml]
可以看到login-identity-providers.xml
内的用户名已经修改,密码是加密后的。
特别注意:密码修改后重启服务才能生效。
# 由于配置过环境变量 我们可以在任意路径使用 NiFi 的命令 nifi.sh restart
4.总结
部署简单,官网说明详细,至此部署成功。
编辑列表:
- 20221123 添加中文文档链接。