NiFi 1.15.3↑ 集群HTTP搭建
序
NiFi活跃度不下各类大组件,迭代更新非常快。鄙人有幸体会从1.9.2版本到现在最新版1.15.3的迭代历程。从一开始的坑坑洼洼到现在的洼洼坑坑,各种折磨。
为了骗大家入坑,我就简单说下1.13.X(不含)以上是怎么进行HTTP集群的搭建的吧。(生产环境不建议HTTP使用,有不安全因素,但为了学习,使用HTTPS进行搭建步骤非常麻烦。)
这里只介绍HTTP集群与HTTPS集群之间的区别。
1.13.2版本以前
1.13.2版本作为最后一个非默认HTTPS版本,可以直接写zk、http ip、http port 和一些其他配置,如下:
nifi.cluster.protocol.is.secure=false
nifi.cluster.is.node=true
nifi.cluster.node.address=10.254.86.68
nifi.cluster.node.protocol.port=10112
nifi.cluster.node.protocol.threads=30
nifi.cluster.node.protocol.max.threads=400
nifi.cluster.node.event.history.size=50
nifi.cluster.node.connection.timeout=10 sec
nifi.cluster.node.read.timeout=10 sec
nifi.cluster.node.max.concurrent.requests=250
nifi.cluster.firewall.file=
nifi.cluster.flow.election.max.wait.time=1 mins
nifi.cluster.flow.election.max.candidates=1
nifi.cluster.load.balance.host=10.254.86.68
nifi.cluster.load.balance.port=10113
nifi.cluster.load.balance.connections.per.node=4
nifi.cluster.load.balance.max.thread.count=36
nifi.cluster.load.balance.comms.timeout=30 sec
nifi.zookeeper.connect.string=10.254.86.68:3181,10.254.86.69:3181,10.254.86.72:3181
nifi.zookeeper.connect.timeout=60 secs
nifi.zookeeper.session.timeout=60 secs
nifi.zookeeper.root.node=/nifi
nifi.zookeeper.client.secure=false
nifi.remote.input.secure=false
必须配置项:
nifi.web.http.host=10.254.86.68
nifi.web.http.port=10111
nifi.web.https.host=
nifi.web.https.port=
nifi.sensitive.props.key=
nifi.sensitive.props.key.protected=
nifi.sensitive.props.algorithm=PBEWITHMD5AND256BITAES-CBC-OPENSSL
nifi.sensitive.props.provider=BC
nifi.sensitive.props.additional.keys=
nifi.security.keystore=
nifi.security.keystoreType=
nifi.security.keystorePasswd=
nifi.security.keyPasswd=
nifi.security.truststore=
nifi.security.truststoreType=
nifi.security.truststorePasswd=
nifi.security.user.authorizer=managed-authorizer
nifi.security.allow.anonymous.authentication=false
nifi.security.user.login.identity.provider=
nifi.security.ocsp.responder.url=
nifi.security.ocsp.responder.certificate=
1.15.3版本
从1.14版本开始,NiFi开始使用HTTPS方式作为默认配置。在官网介绍中,说明了如果启用HTTPS,则
nifi.web.https.host=x.x.x.x
nifi.web.https.port=x.x.x.x
必须进行配置,但是仅仅如此还不够,必须将相关安全的一些配置进行清除才行,还包含这些配置。
nifi.sensitive.props.key=这里必须配置一个KEY,不得超过16位!
nifi.sensitive.props.key.protected=
nifi.sensitive.props.algorithm=PBEWITHMD5AND256BITAES-CBC-OPENSSL
nifi.sensitive.props.provider=BC
nifi.sensitive.props.additional.keys=
特别注意配置需要进行清空。↓
nifi.security.keystore=
nifi.security.keystoreType=
nifi.security.keystorePasswd=
nifi.security.keyPasswd=
nifi.security.truststore=
nifi.security.truststoreType=
nifi.security.truststorePasswd=
nifi.security.user.authorizer=managed-authorizer
nifi.security.allow.anonymous.authentication=false
nifi.security.user.login.identity.provider=
nifi.security.ocsp.responder.url=
nifi.security.ocsp.responder.certificate=
如果你不进行更改,而且启动的是非集群模式,则会在使用single-user的模式,将账号密码打印在日志中。如果你启动的是集群模式,则会直接报错,无法启动。
使用HTTP进行搭建NiFi的时候,必须将各种is.secure配置为false,除外部有认证连接除外(如zk)。
使用官方utools进行升级。
使用官方utools升级可以从1.9.2升级到1.13.2,然后继续升级到1.15.2版本。整个链路我已经测试没有任何问题。
为了在生产模式中使用,我建议将nifi各类repository、extensions、conf等迁移到公共目录,然后就可以使用基本相同的配置进行升级。
结尾
NiFi的功能太强大,官方手册有些地方写的不太够详细,这个配置没有清空其实也属于issue,希望大家多多去社区提问题,并帮助别人解决问题。