Support Questions

Find answers, ask questions, and share your expertise

Required NiFi Ports

avatar

Hi, I'd like clarification on the ports required to run NiFi. I was reading through the admin guide herehttps://nifi.apache.org/docs/nifi-docs/html/administration-guide.html

Questions:

  1. In a non-clustered local mode, what are the minimum ports required for a runtime (on top of data protocol ones, which will naturally differ based on the flow)? Anything beyond the web port for UI and API?
  2. In a clustered mode, things are a little more interesting. Appears that ports will differ based on the casting protocol (if any). Comments on that? The guide mentions many are left blank by default.
  3. Site-to-site protocol. Any additional ports for a protocol itself? Does a sender node have to have access to every individual node as well? Any special ports or is it just data ports?
1 ACCEPTED SOLUTION

avatar

1: The ports needed are the UI ports (http and/or https) and any ports needed by processors for data. The two config properties are: nifi.web.http.port and nifi.web.https.port.

2: Unicasting is used by default for the clustered environment and multicasting isn't needed. Multicasting is used to facilitate broadcasting the availability of a NiFi NCM service. Though there are some network topologies that disable multicasting. So all the multicasting properties are blank since they aren't used by default.

If you're looking for a good guide to setting up a simple cluster you can find one here: https://kisstechdocs.wordpress.com/2015/01/15/simple-tasks-in-nifi-creating-a-super-simple-cluster/

3: Site-to-site is a bit tricky with the word "port". When talking about NiFi only, there are "Input Ports" and "Output Ports" for "Remote Processes Groups" (RPG). All of the RPG's input ports are fed via the network port set with this NiFi system property "nifi.remote.input.socket.port". For connections leaving a NiFi instance, whether thats via a RPG's output port or a processor like HttpGet, a random port that's available will be allocated by the system and the connection kept open. It will be closed after a period of inactivity.

View solution in original post

3 REPLIES 3

avatar

1: The ports needed are the UI ports (http and/or https) and any ports needed by processors for data. The two config properties are: nifi.web.http.port and nifi.web.https.port.

2: Unicasting is used by default for the clustered environment and multicasting isn't needed. Multicasting is used to facilitate broadcasting the availability of a NiFi NCM service. Though there are some network topologies that disable multicasting. So all the multicasting properties are blank since they aren't used by default.

If you're looking for a good guide to setting up a simple cluster you can find one here: https://kisstechdocs.wordpress.com/2015/01/15/simple-tasks-in-nifi-creating-a-super-simple-cluster/

3: Site-to-site is a bit tricky with the word "port". When talking about NiFi only, there are "Input Ports" and "Output Ports" for "Remote Processes Groups" (RPG). All of the RPG's input ports are fed via the network port set with this NiFi system property "nifi.remote.input.socket.port". For connections leaving a NiFi instance, whether thats via a RPG's output port or a processor like HttpGet, a random port that's available will be allocated by the system and the connection kept open. It will be closed after a period of inactivity.

avatar

Had a chance to hash out details with Joe further, posting here for a record.

The input/output port terminology can get confusing quickly, based on what side of the communications you're looking at

  1. A client adds a Remote Process Group (RPG) to a local canvas/instance. The dialog prompts for a remote NiFi instance (UI port).
  2. A remote NiFi instance specifies the nifi.remote.input.socket.port property to designate which port to use for incoming site-to-site communications.
  3. A RPG's input ports are then visible in our local NiFi instance as possible connections to send data to (granted we have permissions).
  4. A RPG's output ports are optional, and can be used to pull data from remotely, or implement a request/response like pattern with a remote instance.
  5. The inbound site-to-site port multiplexes all RPG inbound port communications.

In case of a client talking to a remote NiFi cluster the following applies:

  1. The port to be specified in the RPG UI is the NiFi Cluster Manager (NCM) address. Technically, in a cluster, talking to a node UI directly is illegal and won't work.
  2. A local client must be able to reach every node in a cluster for site-to-site communications. The actual port is specified by each node via nifi.remote.input.socket.port.

Some more details here https://nifi.apache.org/docs.html

avatar
Master Guru

This is old post but came up on my search. for others that may be looking now

https://community.hortonworks.com/articles/85103/nifi-ports.html