Member since
07-30-2019
3472
Posts
1642
Kudos Received
1020
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 261 | 06-03-2026 06:06 PM | |
| 529 | 05-06-2026 09:16 AM | |
| 1044 | 05-04-2026 05:20 AM | |
| 586 | 05-01-2026 10:15 AM | |
| 703 | 03-23-2026 05:44 AM |
07-06-2023
12:31 PM
@sarithe Difficult to provide suggestion without details about your dataflows. Some components (Processors, etc) are going to be CPU intensive and other Memory intensive (embedded docs for each component will show list of resource considerations). You also need to look at disk I/O for the location where NiFi repositories are located. The more FlowFiles you have (small files, but a lot of them) will result in high disk I/O. You can also improve things here by using NiFi record based processors where possible so that one FlowFile contains multiple pieces of content in record format. You may also look at your concurrent task settings on your processors. All processors default to 1 concurrent task, but increasing this value is like cloning the processor allowing multiple concurrent executions (each concurrent thread executes on a different FlowFile from the inbound connection(s)). Also, you have set your Max Timer Driven Thread pool to value that is too high. Do you see any out of memory (OOM) errors or "too Many Open Files" errors in the nifi-app.log? These too will impact performance. NiFi needs a lot of file handles to work with the many components and FlowFiles being processed. If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more
07-06-2023
12:17 PM
1 Kudo
@hackerway I would not recommend using the embedded zookeeper as zookeeper quorum must be maintained in order for yoru NiFi cluster to remain stable. Losing a NiFi node also takes down the embedded zookeeper running with that NiFi. While I would recommend keeping your zookeeper quorum installed on its own servers separate from the NiFi service (NiFi can be a resource intensive application depending on dataflow designs and data volumes), you may be able to run yoru external ZK servers and NiFi servers on the same hardware. Sounds like you have established dataflows and resource usage is low on your servers, but that may change if you add to your existing dataflows, add new dataflows, and/or there is a change in data size/volume. You'll want to be looking at all resource consumption over time before making a decision here: - CPU Load (core load average as well as peaks) - Memory utilization on yoru servers to make sure there is sufficient memory to support both ZK and NiFi. - Disk I/O NiFi can have a lot of disk I/O with it local repositories (content, flowfile, and provenance). So if Disk I/O is high adding ZK to the same host could impact throughput of your NiFi If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more
07-06-2023
12:06 PM
@hegdemahendra SASL_SSL is Simple Authentication and Security Layer over a TLS encrypted connection. A TLS encrypted connection is going to require that the server (Kafka) has a server certificate. There are two types of TLS connection (1-way and mutual). Without going very deep in to this process, i'll keep it very high level). In a 1-way TLS connection only the server (Kafka in your case) presents information in the TLS exchange. The client (NiFi Kafka processor in your case) does not present information back to the server. The client will verify if they trust the information provided from the server. The servers serverAuth certificate will be signed by some certificate authority and the client will verify if that signing authority's trust chain is trusted and if if it is will accept the Server's information allowing the TLS connection to proceed. Now it is possible for the client to choose to trust the server (unsecure) without verifying the trust chain. This is unsafe, so NiFi and its components (Processors, controller services, reporting tasks, RPG, etc) will not allow that. So the processor will require that a SSL Context Service is created. You'll need to configure that SSL Context Service with a SSL truststore which contains the complete trust chain for the Kafka signed certificate. No need for configuring the keystore properties. In a Mutual TLS connection, both sides (server and Client) will present information to each other to identify themselves in order to establish the encrypted TLS connection. In a mutual TLS exchange, the Client must be capable via its truststore to trust the compete trust chain for the server's certificate issuer. And the Server must be capable via its truststore to trust the complete trust chain for the clients certificate issuer. Since you are authenticating via SASL via username and password, you'll only need 1-way TLS encrypted connection. You can manually create a truststore.jks to use for this. You should be able to use openssl to get the public keys needed to do this from yoru kafka target: openssl s_client -connect <kafka hostname>:<kafka port> -showcerts The output from this should contain all the public keys in the trust chain. Each certificate will look something like this: -----BEGIN CERTIFICATE-----
MIIFYjCCBE......yilrbCgj8=
-----END CERTIFICATE----- The "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----" are part of the certificate. You can save each certificate as a "key<num>.pem" file and the import them in to your truststore you when then use in your SSLContextService. If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more
07-05-2023
12:54 PM
1 Kudo
@c3turner7 I suggest opening the developer tools in your browser and then observing the network communication between your browser and the NiFi server. Form this you should see what the current request to load the NiFi UI post authentication credentials being provided is waiting on. You could get and examine a JVM thread dump for your NIFi. Getting multiple thread dumps space at least 1 min apart while it is in the state of loading the UI for comparison will allow you to see any threads that my not be changing from one dump to the next. That info may help understand where exactly it is hung waiting on something. Hope this helps, Matt
... View more
07-05-2023
12:39 PM
@SandyClouds The rest-api output does nit match with your other image's authorizations. I am going to guess that the rest-api call you made did not include a certificate? Your bucket image shared shows that the bucket "my_bucket" was created as a "public" bucket meaning that anyone can view that bucket and the flows stored within that bucket (Rest-Api call returned "canRead: true" and canWrite: false", i'd expect both of these to return true if you passed a certificate for localhost or new_admin as your other image shows read, write, and deleted authorized for those users on "my_bucket". In order to see a bucket in NiFi when starting version control on a process group, The authenticated user in NiFi must be authorized "write" on the bucket. The permission required are: 1. NiFi node certificate must have "clientAuth and serverAuth extendedKeyUsage" and that clientAuth certificate needs to be authorized for Read,Write, Delete on "Can Manage Bucket" and "Can Proxy User Requests". NO other authorizations are needed for the NiFi node certificate. 2. The Authenticated User in NiFi which is being proxied via the NiFi node certificate needs to be authorized for the following on any bucket that users wants to use: 2a: READ - ability to import a version controlled flow from the NiFi-Registry bucket. 2b: WRITE - ability to start version control or commit new version of a flow to NiFi-Registry 2c: DELETE - ability to delete a flow from a bucket via the NiFi-Registry UI. So I would start by getting a verbose listing of the keystore used in nifi.properties file to make sure that the PrivateKeyEntry has clientAuth as an ExtendedKeyUsage (EKU). Then I would uncheck the "make publicly visible" box for your "my_bucket" and make your rest-api call again to see what permissions your NiFi node certificate (localhost) and new_admin have. Remember that what is returned by that call dictates what will show in the various UIs within NiFi. If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more
07-05-2023
11:11 AM
@sarithe The NiFi components (Processors, input ports. output ports, funnels, etc) will request a thread from the configured "Max timer Driven thread" pool in NiFi each time the processor is scheduled to execute. Adding more components will NOT increase the size of the thread pool (which is only set to 10 default out of the box). Generally speaking, The recommended starting size for your "Max Timer Driven Thread" should be 2 - 4 times the number of cores you have on yoru NiFi server (Example - 16 cores would have thread pool set between 32 and 64). After adjusting your thread pool, you should monitor CPU utilization on your server while your dataflows are being executed within NiFi. You may find that your NiFi components execute very fast threads (milliseconds) and cpu load average remains low meaning you could set the thread pool even larger. Or you find your core load average remains very high meaning you should reduce your thread pool size. The configuration for the "Max Timer Driven Thread" can be found from NiFi UI --> Global menu (upper right corner) --> Controller Settings Note: There is also an "Event Driven Thread Pool" which you should NOT edit. It is used by processors that have been configured to use the "Event Driven" scheduling strategy (No processors use this by default). This strategy was experimental and has been deprecated. It willl be removed completely in next major Apache NiFi release. If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more
07-05-2023
10:28 AM
@c3turner7 What version of Java are you suing with your Apache NiFi 1.22?
... View more
06-30-2023
05:33 AM
1 Kudo
@KleytonMayer Best to provide the version of NiFi you are using along with the specific ConsumeKafka/ConsumeKafkaRecord processor you are using along with its configuration. I'd expect your ConsumeKafka to split out one FlowFile per consumed Kafka record unless you have changed setting defaults or you are using a ConsumeKafkaRecord processor. If you don't need to split your FlowFile into different FlowFiles for processing, I'd recommend you look into using the various "record" based processors NiFi offers. Working with larger multi-record FlowFiles is more efficient and uses less resources. The output you shared looks like it may be a single complete JSON per line. If so, you could simply use the SplitText processor with a line Split Count of 1. If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more
06-29-2023
11:30 AM
@scheeri FIFO is the default priority of a connection queue; however, if you have more then one concurrent task on a processor, multiple FlowFiles from the source connection can be executed about concurrently. This means that one of those concurrent execution may complete before the other leading to FlowFile no longer being in same order in follow-on connections. If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more
06-29-2023
11:22 AM
@SandyClouds Can you share the contents of your authorizers.xml file? This seems odd to me: "'CN=admin, OU=NiFi'" you show having both double quotes and single quotes around your user's DN in the users.xml file. Did you put single quotes around the DN in the authorizer's file-access-policy-provider and file-user-group-provider? If so remove those single quotes, users.xml, and authorizations.xml, then restart your NiFi-Registry again. If you found that the provided solution(s) assisted you with your query, please take a moment to login and click Accept as Solution below each response that helped. Thank you, Matt
... View more