Koji Kawamura created NIFI-2478:
-----------------------------------

             Summary: Can not use the same Zookeeper with multiple cluster
                 Key: NIFI-2478
                 URL: https://issues.apache.org/jira/browse/NIFI-2478
             Project: Apache NiFi
          Issue Type: Bug
          Components: Core Framework
    Affects Versions: 1.0.0
            Reporter: Koji Kawamura


I am trying to use the same external Zookeeper from two NiFi clusters. It's 
expected this deployment is supported since there is 'nifi.zookeeper.root.node' 
setting.

Set 'nifi.zookeeper.root.node' to '/nifi-cluster-1' for cluster-1, and 
'/nifi-cluster-2' for cluster-2.

Cluster-1 started successfully. But Cluster-2 can't start with following error:
{code}
2016-08-04 07:45:58,787 INFO [main] o.a.c.f.imps.CuratorFrameworkImpl Starting
2016-08-04 07:45:58,794 INFO [main-EventThread] 
o.a.c.f.state.ConnectionStateManager State change: CONNECTED
2016-08-04 07:45:58,795 INFO [main] o.a.n.c.c.node.CuratorNodeProtocolSender No 
node has yet been elected Cluster Coordinator. Cannot establish connection to 
cluster yet.
2016-08-04 07:45:58,795 INFO [Curator-Framework-0] 
o.a.c.f.imps.CuratorFrameworkImpl backgroundOperationsLoop exiting
2016-08-04 07:45:58,797 WARN [main] o.a.nifi.controller.StandardFlowService 
Failed to connect to cluster due to: 
org.apache.nifi.cluster.protocol.ProtocolException: No node has yet been 
elected Cluster Coordinator. Cannot establish connection to cluster yet.
org.apache.nifi.cluster.protocol.ProtocolException: No node has yet been 
elected Cluster Coordinator. Cannot establish connection to cluster yet.
        at 
org.apache.nifi.cluster.coordination.node.CuratorNodeProtocolSender.getServiceAddress(CuratorNodeProtocolSender.java:108)
 ~[nifi-framework-cluster-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
{code}

I looked at the Zookeeper znodes and found 'leaders' is not under configured 
root node:
{code}
[zk: localhost:2181(CONNECTED) 17] ls /
[leaders, nifi-cluster-1, zookeeper]
{code}

Then, I looked at the source code, and found CuratorLeaderElectionManager has 
following code:
{code}
        final String rootPath = zkConfig.getRootPath();
        final String leaderPath = (rootPath.endsWith("/") ? "" : "/") + 
"leaders/" + roleName;
{code}

It doesn't include rootPath while it should. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to