资讯动态

apache nifi 2.90部署+运维手册

发布时间:2026/10/15 16:26:43 来源:尧图企业网站定制
Apache NiFi 2.9.0 部署手册本文结合手动部署 AI总结所有命令真实可用绝非AI捏造未经验证请放心食用一、环境概览项目说明操作系统LinuxCentOS/RHEL 系服务器 IP10.29.40.82SSH 跳板机10.180.116.100:2001不能直连目标服务器 SSHJDK 版本Dragonwell 21路径/app/jdk21NiFi 版本2.9.0路径/app/nifi-2.9.0访问协议HTTPSHTTPS 端口8443内存配置JVM Heap-Xms1g -Xmx1g二、SSH 连接方式目标服务器10.29.40.82不能直接 SSH必须通过跳板机10.180.116.100的2001 端口跳转。2.1 准备私钥将ssh.key保存到本地Windows 下需修复文件权限SSH 不允许私钥被其他用户读取# Windows PowerShell管理员icaclsC:\path\to\ssh.key/inheritance:r icaclsC:\path\to\ssh.key/grant:r$env:USERNAME:R2.2 连接命令ssh-i/path/to/ssh.key\-oStrictHostKeyCheckingno\-oUserKnownHostsFile/dev/null\-p2001root10.180.116.100说明10.180.116.100:2001实际是端口转发登录后直接进入目标服务器LXJS-imes-lz-ap02用户为root。2.3 远程执行命令示例# 查看 NiFi 进程ssh-issh.key-p2001root10.180.116.100ps -ef | grep nifi | grep -v grep# 查看日志ssh-issh.key-p2001root10.180.116.100tail -100 /app/nifi-2.9.0/logs/nifi-app.log三、目录结构/app/ ├── jdk21/ # Dragonwell JDK 21 └── nifi-2.9.0/ # NiFi 安装目录 ├── bin/ │ └── nifi.sh # 启停脚本 ├── conf/ │ ├── nifi.properties # 主配置文件 │ ├── bootstrap.conf # JVM 启动参数 │ ├── login-identity-providers.xml # 认证配置 │ ├── keystore.p12 # HTTPS 证书PKCS12 │ └── truststore.p12 # 信任库PKCS12 ├── lib/ ├── content_repository/ # 内容仓库运行时自动创建 ├── flowfile_repository/ # FlowFile 仓库 ├── provenance_repository/ # 数据溯源仓库 └── logs/ ├── nifi-app.log # 应用主日志 └── nifi-bootstrap.log # 启动引导日志四、关键配置项配置文件路径/app/nifi-2.9.0/conf/nifi.properties4.1 Web 访问配置# HTTPS 绑定地址0.0.0.0 表示监听所有网卡 nifi.web.https.host0.0.0.0 nifi.web.https.port8443 # HTTP 端口留空表示禁用 HTTP nifi.web.http.port # 代理主机外部访问地址含端口 nifi.web.proxy.host10.29.40.82:8443,localhost:8443,LXJS-imes-lz-ap02:84434.2 证书配置nifi.security.keystore./conf/keystore.p12 nifi.security.keystoreTypePKCS12 nifi.security.keystorePasswd916bebe5988d8c259b12125f17534311 nifi.security.truststore./conf/truststore.p12 nifi.security.truststoreTypePKCS12 nifi.security.truststorePasswd4638380936819df293abb22aa11411b84.3 敏感属性密钥# 用于加密 flow 中的敏感信息密码等至少 12 位 nifi.sensitive.props.keyg6%-kQKb4y^ogbO注意此密钥一旦设置不要随意更改否则已加密的 flow 敏感属性将无法解密。4.4 JVM 内存配置配置文件/app/nifi-2.9.0/conf/bootstrap.conf# 默认 1g可根据服务器内存调整 java.arg.2-Xms1g java.arg.3-Xmx1g五、启停操作执行前需设置 JAVA_HOME非交互式 SSH 不会自动加载/etc/profile.d/PATH.shexportJAVA_HOME/app/jdk21exportPATH$JAVA_HOME/bin:$PATH5.1 启动cd/app/nifi-2.9.0 ./bin/nifi.sh start5.2 停止cd/app/nifi-2.9.0 ./bin/nifi.sh stop5.3 查看状态./bin/nifi.sh statusps-ef|greporg.apache.nifi.NiFi|grep-vgrep5.4 前台运行调试用./bin/nifi.sh run5.5 查看日志# 实时跟踪应用日志tail-f/app/nifi-2.9.0/logs/nifi-app.log# 查看启动引导日志tail-f/app/nifi-2.9.0/logs/nifi-bootstrap.log六、首次登录6.1 获取初始账号密码NiFi 首次启动时会自动生成用户名和密码记录在日志中grepGenerated/app/nifi-2.9.0/logs/nifi-app.log输出示例Generated Username [656ba24e-538c-4554-b945-812e66235c94] Generated Password [QPpTBIAb3z6JjpkGzN6meMW1Lh/fBgf]6.2 访问地址https://10.29.40.82:8443/nifi自签名证书会提示不安全点击高级 → 继续前往即可。6.3 修改默认账号密码cd/app/nifi-2.9.0 ./bin/nifi.sh set-single-user-credentials新用户名新密码# 然后重启./bin/nifi.sh stop./bin/nifi.sh start七、常见问题FAQQ1访问报HTTP ERROR 400 Invalid SNI现象浏览器访问https://10.29.40.82:8443/返回 400 Invalid SNI。原因NiFi 2.x 使用 Jetty 10自动生成的证书 SANSubject Alternative Name中只有localhost和主机名不包含 IP 地址。用 IP 访问时浏览器发送的 SNI 是 IP服务器证书中没有该 IPJetty 直接拒绝。解决方法重新生成包含 IP 的证书。exportJAVA_HOME/app/jdk21exportPATH$JAVA_HOME/bin:$PATHcd/app/nifi-2.9.0/conf# 1. 备份旧证书cpkeystore.p12 keystore.p12.bak.$(date%Y%m%d%H%M%S)cptruststore.p12 truststore.p12.bak.$(date%Y%m%d%H%M%S)# 2. 删除旧 keystore生成新证书加入 IP SANrm-fkeystore.p12 keytool-genkeypair\-aliasgenerated\-keyalgRSA-keysize4096-validity3650\-keystorekeystore.p12-storetypePKCS12\-storepass916bebe5988d8c259b12125f17534311\-keypass916bebe5988d8c259b12125f17534311\-dnameCNlocalhost, OUNiFi, OMyOrg, LCity, STState, CCN\-extSANDNS:localhost,DNS:LXJS-imes-lz-ap02,IP:10.29.40.82,IP:127.0.0.1# 3. 导出证书并重建 truststorekeytool-exportcert-aliasgenerated\-keystorekeystore.p12-storetypePKCS12\-storepass916bebe5988d8c259b12125f17534311\-file/tmp/nifi-cert.crtrm-ftruststore.p12 keytool-importcert-aliasgenerated\-file/tmp/nifi-cert.crt\-keystoretruststore.p12-storetypePKCS12\-storepass4638380936819df293abb22aa11411b8-noprompt# 4. 重启 NiFicd/app/nifi-2.9.0 ./bin/nifi.sh stop./bin/nifi.sh start注意密码需与nifi.properties中nifi.security.keystorePasswd和nifi.security.truststorePasswd保持一致否则无需改配置。Q2启动失败提示JAVA_HOME not set或java command not found原因非交互式 SSH 登录不会加载/etc/profile.d/PATH.sh导致java不在 PATH 中。解决方法执行 NiFi 命令前手动设置环境变量exportJAVA_HOME/app/jdk21exportPATH$JAVA_HOME/bin:$PATH也可以在nifi.sh开头或/etc/profile中固化。Q3启动失败日志报 Java 版本不兼容现象UnsupportedClassVersionError或类似错误。原因NiFi 2.x强制要求 Java 21不支持 Java 8/11/17。验证/app/jdk21/bin/java-version# 应输出 openjdk version 21.x.xQ4忘记登录密码怎么办解决方法重置单用户凭证后重启cd/app/nifi-2.9.0 ./bin/nifi.sh set-single-user-credentials admin 你的新密码 ./bin/nifi.sh stop./bin/nifi.sh startQ5启动后访问一直转圈或 502排查步骤确认进程是否存活ps -ef | grep nifi查看 bootstrap 日志tail -50 logs/nifi-bootstrap.log查看应用日志是否有异常tail -100 logs/nifi-app.log | grep -i error确认端口监听netstat -tlnp | grep 8443首次启动需要 30~60 秒初始化耐心等待Q6如何验证证书 SAN 是否包含 IP/app/jdk21/bin/keytool-list-v\-keystore/app/nifi-2.9.0/conf/keystore.p12\-storepass916bebe5988d8c259b12125f17534311\-storetypePKCS12|grep-A5SubjectAlternativeName正常输出应包含SubjectAlternativeName [ DNSName: localhost DNSName: LXJS-imes-lz-ap02 IPAddress: 10.29.40.82 IPAddress: 127.0.0.1 ]Q7磁盘空间不足NiFi 的content_repository和provenance_repository会随数据量增长。查看磁盘df-h/appdu-sh/app/nifi-2.9.0/*_repository可在nifi.properties中调整仓库容量阈值nifi.content.repository.archive.max.bytes... nifi.provenance.repository.max.storage.time24 hours nifi.provenance.repository.max.storage.size1 GBQ8需要新增域名/IP 访问如果后续需要通过其他域名或 IP 访问重新生成证书时在-ext SAN...中追加即可-extSANDNS:localhost,DNS:LXJS-imes-lz-ap02,IP:10.29.40.82,IP:127.0.0.1,DNS:nifi.example.com,IP:其他IP同时更新nifi.web.proxy.host。八、运维速查表操作命令启动cd /app/nifi-2.9.0 ./bin/nifi.sh start停止./bin/nifi.sh stop重启./bin/nifi.sh stop ./bin/nifi.sh start查看状态./bin/nifi.sh status实时日志tail -f logs/nifi-app.log查看进程ps -ef | grep org.apache.nifi.NiFi查看端口netstat -tlnp | grep 8443重置密码./bin/nifi.sh set-single-user-credentials user pass登录地址https://10.29.40.82:8443/nifi九、备份建议定期备份以下文件/目录备份项路径说明配置文件/app/nifi-2.9.0/conf/nifi.properties、证书等Flow 定义/app/nifi-2.9.0/conf/flow.xml.gz数据流编排如有日志/app/nifi-2.9.0/logs/按需归档重要备份时请同时记录nifi.sensitive.props.key的值否则换环境后无法解密 flow 中的敏感属性。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑