当前位置: 首页 > news >正文

nifi1.28.1集群部署详细记录

NiFi 1.28.1 必须使用JDK 1.8或更高版本,低于此版本将无法运行。
验证命令:java -version
配置一定用主机名!!!

1.解压安装包

unzip nifi-1.28.1-bin.zip

2.配置环境变量

cat <<‘EOF’ > /etc/profile.d/nifi.sh
export NIFI_HOME=/data12/nifi/nifi-1.28.1
export PATH= P A T H : PATH: PATH:{NIFI_HOME}/bin
EOF
sleep 1
source /etc/profile.d/nifi.sh

cat <<‘EOF’ > /etc/profile.d/jdk8.sh
export JAVA_HOME=/usr/java/jdk1.8.0_202-amd64/jre
export PATH= P A T H : PATH: PATH:{JAVA_HOME}/bin
EOF
sleep 1
source /etc/profile.d/jdk8.sh

cd /data12/nifi/nifi-1.28.1/

3.配置内置 ZooKeeper

修改vi conf/zookeeper.properties
initLimit=10
autopurge.purgeInterval=24
syncLimit=5
tickTime=2000
dataDir=./state/zookeeper
autopurge.snapRetainCount=30

server.1=wf-gd2-bpit-dp-dn-17-92:2888:3888;2181
server.2=wf-gd2-bpit-dp-dn-17-93:2888:3888;2181
server.3=wf-gd2-bpit-dp-dn-17-94:2888:3888;2181

创建 myid 文件(每个节点唯一):
cd $NIFI_HOME
mkdir -p ./state/zookeeper
echo 1 > ./state/zookeeper/myid # 节点1 写1,节点2 写2,节点3 写3,依此类推
echo 2 > ./state/zookeeper/myid
echo 3 > ./state/zookeeper/myid

4.集群核心配置

1、修改vi conf/state-management.xml 配置 ZooKeeper 连接串(所有节点相同):

zk-provider
org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider
wf-gd2-bpit-dp-dn-17-92:2181,wf-gd2-bpit-dp-dn-17-93:2181,wf-gd2-bpit-dp-dn-17-94:2181
/nifi
10 seconds
Open

2、配置vi conf/nifi.properties

设置为当前节点的主机名

nifi.cluster.node.address=wf-gd2-bpit-dp-dn-17-92
#nifi.cluster.node.address=wf-gd2-bpit-dp-dn-17-93
#nifi.cluster.node.address=wf-gd2-bpit-dp-dn-17-94

是否是集群中的节点,默认值为false。

nifi.cluster.is.node=true

此端口设置为高于1024的开放端口(任何较低的端口都需要root)。

nifi.cluster.node.protocol.port=8888

用于与集群中其他节点通信的线程数。此属性默认为10。

nifi.cluster.node.protocol.threads=10
#与集群中其他节点进行通信的最大线程数。此属性默认为50。
nifi.cluster.node.protocol.max.threads=50

指定在选择流作为“正确”流之前要等待的时间

nifi.cluster.flow.election.max.wait.time=5 mins

指定集群中导致流的早期选择所需的节点数

nifi.cluster.flow.election.max.candidates=1

cluster 负载均衡配置

nifi.cluster.load.balance.host=wf-gd2-bpit-dp-dn-17-92
#nifi.cluster.load.balance.host=wf-gd2-bpit-dp-dn-17-93
#nifi.cluster.load.balance.host=wf-gd2-bpit-dp-dn-17-94
nifi.cluster.load.balance.port=6342
nifi.cluster.load.balance.connections.per.node=4
nifi.cluster.load.balance.max.thread.count=8
nifi.cluster.load.balance.comms.timeout=30 sec

ZooKeeper 列表

nifi.state.management.embedded.zookeeper.start=true
nifi.zookeeper.connect.string=wf-gd2-bpit-dp-dn-17-92:2181,wf-gd2-bpit-dp-dn-17-93:2181,wf-gd2-bpit-dp-dn-17-94:2181
nifi.zookeeper.connect.timeout=3 secs
nifi.zookeeper.session.timeout=3 secs

ZooKeeper 存储数据根目录。默认值为 /nifi

nifi.zookeeper.root.node=/nifi

nifi web ui的访问域名

nifi.web.https.host=wf-gd2-bpit-dp-dn-17-92
#nifi.web.https.host=wf-gd2-bpit-dp-dn-17-93
#nifi.web.https.host=wf-gd2-bpit-dp-dn-17-94

nifi的访问端口号

nifi.web.https.port=8443
nifi.cluster.protocol.is.secure=true
nifi.remote.input.secure=true

敏感信息加密密钥

nifi.sensitive.props.key=123456789012K

nifi节点间通信端口

nifi.cluster.node.protocol.port=11443

5.TLS证书生成与配置

1.用Nifi-Toolkit生成证书和nifi.properties(在wf-gd2-bpit-dp-dn-17-92机子上执行)

sh /data12/nifi/nifi-toolkit-1.28.1/bin/tls-toolkit.sh standalone -O -n ‘wf-gd2-bpit-dp-dn-17-92,wf-gd2-bpit-dp-dn-17-93,wf-gd2-bpit-dp-dn-17-94’ -C ‘CN=wf-gd2-bpit-dp-dn-17-92,OU=NIFI’ -C ‘CN=wf-gd2-bpit-dp-dn-17-93,OU=NIFI’ -C ‘CN=wf-gd2-bpit-dp-dn-17-94,OU=NIFI’ -K 123456789012K -S 123456789012K -P 123456789012K -o ‘/data12/nifi/nifi-toolkit-1.28.1/tls’

2.请将从wf-gd2-bpit-dp-dn-17-92节点生成的证书文件分别复制到wf-gd2-bpit-dp-dn-17-92、wf-gd2-bpit-dp-dn-17-93以及wf-gd2-bpit-dp-dn-17-94各节点上NiFi安装目录下的配置文件夹中。

scp tls/wf-gd2-bpit-dp-dn-17-92/*.jks root@wf-gd2-bpit-dp-dn-17-92:/data12/nifi/nifi-1.28.1/conf/

scp tls/wf-gd2-bpit-dp-dn-17-93/*.jks root@wf-gd2-bpit-dp-dn-17-93:/data12/nifi/nifi-1.28.1/conf/

scp tls/wf-gd2-bpit-dp-dn-17-94/*.jks root@wf-gd2-bpit-dp-dn-17-94:/data12/nifi/nifi-1.28.1/conf/

3.将生成出来的nifi.properties TLS相关部分替换到nifi-1.28.1/conf下nifi.properties相关配置

vim /data12/nifi/nifi-1.28.1/conf/nifi.properties

#拷贝如下配置
nifi.security.autoreload.enabled=false
nifi.security.autoreload.interval=10 secs
nifi.security.keystore=./conf/keystore.jks
nifi.security.keystoreType=jks
nifi.security.keystorePasswd=123456789012K
nifi.security.keyPasswd=123456789012K
nifi.security.truststore=./conf/truststore.jks
nifi.security.truststoreType=jks
nifi.security.truststorePasswd=123456789012K
nifi.security.user.authorizer=single-user-authorizer
nifi.security.allow.anonymous.authentication=false
nifi.security.user.login.identity.provider=single-user-provider
nifi.security.user.jws.key.rotation.period=PT1H
nifi.security.ocsp.responder.url=
nifi.security.ocsp.responder.certificate=
#替换nifi-1.28.1/conf下nifi.properties相关配置

vim /data12/nifi/nifi-1.28.1/conf/nifi.properties

6.默认配置的Single User 模式进行登录认证。conf/login-identity-providers.xml

在NiFi安装目录中,请执行以下命令以创建当前节点的用户名和密码。其中,username将作为登录NiFi Web用户界面时使用的身份标识,而password则为其对应的认证密钥。
/data12/nifi/nifi-1.28.1/bin/nifi.sh set-single-user-credentials xyxy xy1234567890

7.启动集群

启动顺序
先启动所有节点的 ZooKeeper 服务(嵌入式):
bin/nifi.sh start
关键提示:所有节点需在5分钟内启动完毕,否则选举可能失败!
集群管理命令:
bin/nifi.sh status # 查看状态
bin/nifi.sh restart # 重启(需滚动执行)
bin/nifi.sh stop

8.验证集群状态

访问任意节点的 Web UI:https://wf-gd2-bpit-dp-dn-17-92:8443/nifi
查看集群状态:顶部状态栏显示 Cluster: 3 /3 Nodes 表示所有节点在线。
日志排查:检查 logs/nifi-app.log 无 ERROR 级错误。

http://www.dtcms.com/a/262997.html

相关文章:

  • 大语言模型LLM在训练/推理时的padding
  • 用户行为序列建模(篇十一)-小结篇(篇一)
  • 如何读取运行jar中引用jar中的文件
  • C++ --- list
  • 《Effective Python》第十一章 性能——使用 timeit 微基准测试优化性能关键代码
  • 分发糖果
  • Spring Boot 集成 tess4j 实现图片识别文本
  • Springboot + vue + uni-app小程序web端全套家具商场
  • Serverless 架构入门与实战:AWS Lambda、Azure Functions、Cloudflare Workers 对比
  • 人工智能参与高考作文写作的实证研究
  • 华为物联网认证:开启万物互联的钥匙
  • 设计模式-观察者模式(发布订阅模式)
  • YOLOv12_ultralytics-8.3.145_2025_5_27部分代码阅读笔记-torch_utils.py
  • 现代JavaScript前端开发概念
  • spring-ai-alibaba官方 Playground 示例
  • 使用pyflink进行kafka实时数据消费
  • 电脑开机加速工具,优化启动项管理
  • 【Unity】MiniGame编辑器小游戏(七)贪吃蛇【Snake】
  • Java项目:基于SSM框架实现的云端学习管理系统【ssm+B/S架构+源码+数据库+毕业论文】
  • 离线环境安装elk及设置密码认证
  • 通过案例来了解let、const、var的区别
  • DAY 47 注意力热图可视化
  • 有些Android旧平台,在Settings菜单里的,设置-电池菜单下,没有电池使用数据,如何处理
  • RK3568平台开发系列讲解:HDMI显示驱动
  • 六自由度按摩机器人 MATLAB 仿真
  • HarmonyOS NEXT仓颉开发语言实战案例:电影App
  • Windows VMWare Centos Docker部署Nginx并配置对Springboot应用的访问代理
  • k8s一键部署tongweb7容器版脚本(by why+lqw)
  • 车辆工程中的压力传感技术:MEMS与薄膜传感器的实战应用
  • 22.安卓逆向2-frida hook技术-app使用非http协议抓不到包解决方式