Member since
07-30-2019
3390
Posts
1617
Kudos Received
999
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 228 | 11-05-2025 11:01 AM | |
| 439 | 10-20-2025 06:29 AM | |
| 579 | 10-10-2025 08:03 AM | |
| 394 | 10-08-2025 10:52 AM | |
| 435 | 10-08-2025 10:36 AM |
05-05-2017
07:48 PM
1 Kudo
@uttam kumar Using the NiFi REST-API, i was able to upload, delete, and upload again the same template using the following commands To upload: curl -X POST -v -F template=@"/<path to template>/template.xml" http://<host>:<port>/nifi-api/process-groups/<UUID of process group>/templates/upload The UUID of my template was in the response to the above command. To delete: curl -X DELETE -v http://<host>:<port>/nifi-api/templates/<UUID of template> I then repeated the above to commands successfully several times. Thanks, Matt
... View more
05-05-2017
06:17 PM
@nyakkanti Only processor properties that support the NiFi expression language can be configured to use FlowFile attributes. Some properties (even if the processor property says supports expression language: false, you may be able to use a simple ${<FlowFile-attribute-name>} to return a value from a attribute key/value pair. But this is never true for sensitive properties such as password properties. Password properties are especially difficult since those values are encrypted upon apply. So if you entered ${<FlowFile-attribute-name>} , that is what gets encrypted. The processor then decrypts that when making the connection. Nowhere in that process does it ever retrieve a value from the FlowFile. Thanks,
Matt
... View more
05-05-2017
05:51 PM
@ismail patel Nodes in a nifi cluster really don't know about each other. They find out from zookeeper who the elected cluster coordinator is and start sending health and status messages via heartbeats. Each node in the cluster runs its own copy of the dataflow and works on its own set of FlowFiles. When a Node goes down other nodes do not pickup FlowFiles from that node an work on them. I am not following exactly what you did above. If you disconnect a node from the cluster, that heath and status heartbeats will no longer be coming in. Any queued data on that node should not be reflected in the cluster view until the node is reconnected. If the RPG was not sending FlowFiles to Node 2, there is likely an issue with the connection. Make sure you correctly configured the S2S properties in the nifi.properties file on both node correctly and that there is no firewall blocking the connection.
... View more
05-05-2017
04:31 PM
@ismail patel The ability to set FlowFile batch size is coming in Apache NiFi 1.2.0 which should be up for vote any day now. https://issues.apache.org/jira/browse/NIFI-1202 Thanks, Matt
... View more
05-05-2017
04:14 PM
1 Kudo
@ismail patel For now you can force a better load distribution is such case by doing the following for your 0 byte low volume flow: No need to change any configuration on the RouteOnAttribute processor. Simply connect the pre-existing "unmatched" relationship to your RPG. Thanks, Matt
... View more
05-05-2017
04:04 PM
1 Kudo
@ismail patel When the Remote Process Group was originally written, the list and fetch type processors did not exist and NiFi was primarily being used to process large files. Based off that, the design used worked pretty well for load-balancing. Here is how it works: 1. RPG connects to target NiFi cluster. 2. Target NiFi returns a list of available peer nodes along with their current load. 3. RPG creates a distribution allocation. (You will see in logs that distribution in the from of percentages. Node 1 50%, Node2 50%). 4. RPG connects to node 1 and sends data from incoming queue for 5 seconds. then connects to node 2 and sends for 5 seconds. Lets assume a distribution las follows: Target is 4 node cluster and base on load distribution, the following distribution was calculated: Node 1 -- 10% Node 2 -- 20% Node 3 -- 20% Node 4 -- 50% As a result the RPG would connect in this pattern to send the data: Node1, Node2, node3, node4, node2, node3, node4, node4, node4, node4. While with a high volume dataflow and a dataflow dealing with larger files this balances out nicely over time. A low volume flow or a flow dealing with very small files, it does not work so well. In your case, you have a bunch of small files (all 0 byte), so in 5 seconds every one of them is send to node 1. There are improvements coming to the RPG to set batch sizes and improve how the distribution of data occurs. Thank you, Matt
... View more
05-05-2017
12:22 PM
@Ayaskant Das Just wondering if the above was able to resolve your issue. The nifi-user.log screenshot you provided clearly shows that you have reached NiFi and successfully authenticated with the above user DN; however, the user is not authorized to access the nifi /flow resource. Thank you, Matt In order for users to get notifications of a comment to a post you must tag them in teh response using the @<username> (example: @Matt Clarke )
... View more
05-04-2017
09:03 PM
@Bharadwaj Bhimavarapu Whether you are using the ConsumeKafka or PublishKafka processors, if Kafka is kerberized you will need to setup a JAAS file in your NiFi which provides the keytab and principal used to establish that secured connection. By default the /etc/krb5.conf will be used, but you can also tell NiFi to use a different krb5.conf file via a property in the nifi.properties (nifi.kerberos.krb5.file=). You will need to create a JAAS file (example: kafka-jaas.conf) that contains the following (Update to use appropriate keytab and principal for your user): KafkaClient{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="nifi.keytab"
serviceName="kafka"
principal="nifi@DOMAIN";
}; Add the following line to NiFi's bootstrap.conf file (make sure arg number 20 is not already being used, if so change to an unused number): java.arg.20=-Djava.security.auth.login.config=/<path-to>/kafka-jaas.conf Update the following configuration properties in your ConsumeKafka processor: SecurityProtocol= SASL_PLAINTEXT
ServiceName= kafka Basically you are setting up the Kafka client kerberos environment for your NiFi JVM. If this is a NiFi cluster, you will need to to the above on every node. You will need to restart NiFi for these changes to take affect. Thanks, Matt
... View more
05-04-2017
07:43 PM
@Jatin Kheradiya There are a few things that do not look right in your nifi.properties configuration above: On every node the following properties should be configured with the FQDN of the node: 1. nifi.remote.input.host=
2. nifi.cluster.node.address=
3. nifi.web.http.host= or nifi.web.https.host= I noticed you are configuring nifi.remote.input.host= with the IP of a different node. It is not clear from the above if you set a value for nifi.web.http.host= or nifi.web.https.host=. If you did not, Java may be resolving your hostname to localhost. This can be problematic for cluster communications. Since node may end up trying to talk to themselves rather then actually talking to the other nodes. Also make sure that the following ports are open in any firewalls between your nodes: 1. nifi.remote.input.socket.port=
2. nifi.cluster.node.protocol.port=
3. nifi.web.http.port=8080 or nifi.web.https.port=
Also make sure all three of your nodes can talk to zookeeper on port 2181. Thanks, Matt
... View more
05-04-2017
05:19 PM
@Eric Lloyd You can still use ExtractText to get all the bits broken out at once by adding multiple new properties: Thanks, Matt
... View more