根据我读过的所有例子,我认为将NiFi设置为群集会很容易。显然我无法让它发挥作用。我使用的是NiFi 1.5。我只有2个主机,并假装有第三个,但NiFi不是作为一个集群启动。这些是我对配置文件所做的更改。 state-management.xml文件
<cluster-provider>
<id>zk-provider</id>
<class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
<property name="Connect String">etl-1:2181,etl-2:2181,etl-3:2181</property>
<property name="Root Node">/ssd/nifi-1.5.0</property>
<property name="Session Timeout">10 seconds</property>
<property name="Access Control">Open</property>
</cluster-provider>
zookeeper.properities文件
dataDir=./state/zookeeper
server.1=etl-1:2888:3888
server.2=etl-2:2888:3888
server.3=etl-3:2888:3888
nifi.properties文件
nifi.zookeeper.connect.string=etl-1:2181,etl-2:2181,etl-3:2181
nifi.zookeeper.root.node=/ssd/nifi-1.5.0
nifi.cluster.is.node=yes
nifi.cluster.node.address=etl-2 (this is set to etl-1 on the other node)
nifi.state.management.embedded.zookeeper.start=true
[nifi @ etl-2 zookeeper] $ cat /ssd/nifi-1.5.0/state/zookeeper/myid 2 [nifi @ etl-1 logs] $ cat /ssd/nifi-1.5.0/state/zookeeper/myid 1
我已经将logback.xml更新为DEBUG,但是有很多消息我似乎无法找出错误。我最好的猜测是,在本地而不是集群中启动zookeeper。
ls -l /ssd/nifi-1.5.0/state/
total 4
drwxrwxr-x. 18 nifi nifi 4096 Feb 23 18:49 local
drwxrwxr-x. 2 nifi nifi 18 Feb 23 15:26 zookeeper
答案 0 :(得分:0)
我正在尝试在Windows 10上将Nifi作为3节点群集运行,并且如上所述在所有3 conf文件中设置了相同的属性,但仍然无法将nifi作为3节点群集启动。 以下是对我的文件所做的设置
state-management.xml文件
<cluster-provider>
<id>zk-provider</id>
<class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
<property name="Connect String">node1:2181,node2:2181,node3:2181</property>
<property name="Root Node">/nifi</property>
<property name="Session Timeout">10 seconds</property>
<property name="Access Control">Open</property>
</cluster-provider>
zookeper属性
dataDir=./state/zookeeper
autopurge.snapRetainCount=30
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
nifi属性:
nifi.web.http.host=node1
nifi.web.http.port=8080
nifi.cluster.is.node=true
nifi.cluster.node.address=node1
nifi.cluster.node.protocol.port=11122
nifi.zookeeper.connect.string=node1:2181,node2:2181,node3:2181
nifi.zookeeper.root.node=/nifi
在其他2个地址中,分别放置主机名
但是当我启动节点时,它显示以下错误 C:\ nifi-1.11.0-bin \ Node1 \ bin> run-nifi.bat
2020-02-11 20:29:20,237信息[main] org.apache.nifi.bootstrap.Command启动Apache NiFi ...
2020-02-11 20:29:20,238信息[main] org.apache.nifi.bootstrap.Command工作目录:C:\ NIFI-1〜1.0-B \ Node1
2020-02-11 20:29:20,239信息[main] org.apache.nifi.bootstrap.Command命令:C:\ Program Files \ Java \ jdk1.8.0_241 \ bin \ java.exe -classpath C: \ NIFI-1〜1.0-B \ Node1。\ conf; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ javax.servlet-api-3.1.0.jar; C:\ NIFI-1〜1.0 -B \ Node1。\ lib \ jcl-over-slf4j-1.7.26.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ jetty-schemas-3.1.jar; C:\ NIFI-1 〜1.0-B \ Node1。\ lib \ jul-to-slf4j-1.7.26.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ log4j-over-slf4j-1.7.26.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ logback-classic-1.2.3.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ logback-core-1.2.3。 jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ nifi-api-1.11.0.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ nifi-framework-api- 1.11.0.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ nifi-nar-utils-1.11.0.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ nifi-properties-1.11.0.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ nifi-runtime-1.11.0.jar; C:\ NIFI-1〜1.0-B \ Node1。\ lib \ slf4j-api-1.7.26.jar -Dorg.apache.jasper.compiler.disablejsr199 = true -Xmx512m -Xms512m -Djavax.security.auth.useSubjectCredsOnly = true -Djava.security.egd = file:/ dev / urandom -Dsu n.net.http.allowRestrictedHeaders = true -Djava.net.preferIPv4Stack = true -Djava.awt.headless = true -Djava.protocol.handler.pkgs = sun.net.www.protocol -Dzookeeper.admin.enableServer = false- Dnifi.properties.file.path = C:\ NIFI-1〜1.0-B \ Node1。\ conf \ nifi.properties -Dnifi.bootstrap.listen.port = 53535 -Dapp = NiFi -Dorg.apache.nifi.bootstrap。 config.log.dir = C:\ NIFI-1〜1.0-B \ Node1 \ bin .. \ logs org.apache.nifi.NiFi
2020-02-11 20:29:20,554警告[main] org.apache.nifi.bootstrap.Command无法设置权限,以便仅所有者可以读取pid文件C:\ NIFI-1〜1.0-B \ Node1 \ bin .. \ run \ nifi.pid;这可能允许其他人访问与NiFi通信所需的密钥。应该更改权限,以便只有所有者才能读取此文件
2020-02-11 20:29:20,561警告[main] org.apache.nifi.bootstrap.Command未能设置权限,因此只有所有者才能读取状态文件C:\ NIFI-1〜1.0-B \ Node1 \ bin .. \ run \ nifi.status;这可能允许其他人访问与NiFi通信所需的密钥。应该更改权限,以便只有所有者才能读取此文件
2020-02-11 20:29:20,573信息[main] org.apache.nifi.bootstrap.Command启动了进程号为4284的Apache NiFi
C:\ nifi-1.11.0-bin \ Node1 \ bin> status-nifi.bat
20:31:57.265 [main]调试org.apache.nifi.bootstrap.NotificationServiceManager-找到0个服务元素
20:31:57.271 [main] INFO org.apache.nifi.bootstrap.NotificationServiceManager-成功加载了以下0个服务:[]
20:31:57.272 [main]信息org.apache.nifi.bootstrap.RunNiFi-未为通知类型NIFI_STARTED注册任何通知服务
20:31:57.273 [main]信息org.apache.nifi.bootstrap.RunNiFi-未为通知类型NIFI_STOPPED注册任何通知服务
20:31:57.274 [main]信息org.apache.nifi.bootstrap.RunNiFi-未为通知类型NIFI_DIED注册任何通知服务
20:31:57.277 [main]调试org.apache.nifi.bootstrap.Command-状态文件:C:\ NIFI-1〜1.0-B \ Node1 \ bin .. \ run \ nifi.status
20:31:57.278 [main]调试org.apache.nifi.bootstrap.Command-状态文件:C:\ NIFI-1〜1.0-B \ Node1 \ bin .. \ run \ nifi.status
20:31:57.279 [main]调试org.apache.nifi.bootstrap.Command-属性:{pid = 4284,port = 53536}
20:31:57.280 [main]调试org.apache.nifi.bootstrap.Command-Ping 53536
20:31:58.343 [main]调试org.apache.nifi.bootstrap.Command-PID 4284的进程未运行
20:31:58.345 [main]信息org.apache.nifi.bootstrap.Command-Apache NiFi未运行