Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Anchor
zeroMasterCluster
zeroMasterCluster
Zero-Master Clustering

Master/slave clustering model has been replaced by a Zero-Master Clustering paradigm. Each node in a NiFi cluster performs the same tasks on the data, but each operates on a different set of data. A DataFlow manager can now interact with the NiFi cluster through the UI of any node.

ZooKeeper elects a single node as the Cluster Coordinator and also handles failover. All cluster nodes report heartbeat and status information to the Cluster Coordinator, which is responsible for disconnecting and connecting nodes. Additionally, every cluster has one Primary Node, also elected by ZooKeeper.

Configuration details can be found in the Clustering Configuration, the Cluster Common Properties, the Cluster Node Properties, and the ZooKeeper Properties sections of the System Administrator's Guide.

Note:

  • NiFi Cluster Manager (NCM) configuration and properties are no longer relevant and have been removed.

  • The following properties should be set on each node:

    • nifi.web.http.port=<node port>

    • nifi.cluster.is.node=true

    • nifi.cluster.node.address=<fully qualified hostname of the node>

    • nifi.cluster.node.protocol.port=<node protocol port>

    • nifi.state.management.embedded.zookeeper.start=true

    • nifi.state.management.provider.cluster=zk-provider

    • nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties

    • nifi.zookeeper.connect.string=<A comma-separated list of host:port pairs to connect to ZooKeeper. For example, my-zk-server1:2181,my-zk-server2:2181,my-zk-server3:2183>

  • Coordinated dataflow selection across cluster nodes. During startup, a cluster coordinator is selected at random, and manages the distribution of the dataflow across all nodes. You should set the following to properties, to ensure that the cluster coordinator and other nodes have time to select the correct dataflow:

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

    • nifi.cluster.flow.election.max.candidates=<number of NiFi nodes in the cluster>

  • Embedded ZooKeeper setup

    • The zookeeper.properties file needs to be populated with a list of each node's embedded ZooKeeper server. The servers are specified in the form of server.1, server.2, to server.n. Each of these servers is configured as <hostname>:<quorum port>[:<leader election port>]. For example, server.1=nifi-node1-hostname:2888:3888.

    • The zookeeper.properties file has a property named dataDir which is set to ./state/zookeeper by default. For each node, create a file named myid and place it in this directory. The contents of this file should be the index of the server as specified by the server.<number>. Configuration details can be found in the Embedded ZooKeeper Server section of the System Administrator's Guide.

  • State Management – In the state-management.xml file, set the “Connect String” property to the same list of ZooKeeper host:port pairs used for the nifi.zookeeper.connect.string property value.

  • Secure Clustered Environment – The identities for each node must be specified in the authorizers.xml file. The authorization policies required for the nodes to communicate will then be created during startup. Details on configuration can be found in Authorizers.xml Setup section of the System Administrator's Guide.

...