无法让NiFi在群集中工作

时间:2018-02-23 22:33:13

标签: cluster-computing apache-nifi

根据我读过的所有例子,我认为将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

1 个答案:

答案 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未运行