Member since
07-30-2019
3419
Posts
1624
Kudos Received
1009
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 108 | 01-09-2026 06:58 AM | |
| 480 | 12-17-2025 05:55 AM | |
| 541 | 12-15-2025 01:29 PM | |
| 551 | 12-15-2025 06:50 AM | |
| 405 | 12-05-2025 08:25 AM |
01-03-2024
08:15 AM
@PriyankaMondal What is being logged in the nifi-user.log when the issue happens? Have you tried using your browser's developer tools to look at the data being exchanged in the request with the NiFi cluster? Feels like maybe the site cookies are not being sent to the NiFi node after successful authentication resulting in the exception being seen. Thanks, Matt
... View more
01-03-2024
06:01 AM
@arutkwccu The release notes for minor releases typically include highlights covering any "deprecated" components (This is documented for Apache NiFi 2.0.0-M1 Deprecated Components and Features ) or components moved to "optional build profiles" (such as this specific parquet bundle). This is done help make minor upgrades as seamless and painless as possible. Apache NIFi 2.0.0 is a Major release and as such will have many significant changes including breaking changes as well. As such, it should not be treated the same as minor version upgrade and extra care and evaluation taken during migration from a previous major release version. I agree that is would have been nice if the Apache Community included another confluence page documenting all components to the "Optional Build Profile" with instructions like i added above on how to add them. Glad you are good to go now. Thank you, Matt
... View more
01-03-2024
05:29 AM
@arutkwccu Yes, the added ParquetReader will be available to the record processors that utilize record reader or writer. There is not a lot involved in this process. Simply download these two nar files and place them in the NiFi extensions folder owned by NiFi service user. NiFi takes care of the rest. I added these two nars to my 2.0.0-M1 installation to show you that it works here: If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
01-02-2024
12:35 PM
@arutkwccu @joseomjr NiFi components evolve from release to release. as part of their evolution the components may have default properties added or removed. That is the case here with invokeHTTP processor. The property "Proxy Type" idd exist as a property in Apache NiFi 1.24 invokeHTTP processor and had a default value of "http". This property was removed in Apache NIFi 2.0.0-M1 invokeHTTP processor. In this specific example: - Earlier version of Apache NIFi 1.x invokeHTTP processor supported configuring proxy properties directly in the processor. Later version of Apache NiFi allowed those same configuration to be abstracted to a StandardProxyConfigurationService controller service (for ease of reuse), but also kept the original direct properties in the processor to avoid upgrade issues for user upgrading within a minor release change. As Apache NiFi 2.0.0-M1 is a major release, clean-up is happening here to remove the deprecated config methods for the newer controller service config method. When a NiFi loads the flow.json.gz from another NiFi it loads the same class and reads in all the configured properties. For any configured property where the current version does not have the same property, the property is added as a custom dynamic property. This may render your component invalid until manual correction is made (in your case deleting this dynamic property). Apache NiFi has always functioned in this way and it is not a bug. It is not possible for NiFi framework to know what "dynamic" properties should or should not be added to component, it simply reads what is found in the flow.json.gz being loaded. Validating your dataflows post any upgrade (not just major version changes like Apache NiFi 1.x to 2.x) is a necessary step. This specific migration is mentioned in the Migrating Deprecated Components and Features guide. You'll know right away if a property is not a default property but rather a "dynamic" custom property when you see it. Only dynamic properties will present the trashcan icon to the right of it allowing you to delete it. Hope this adds clarity here. If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Mat
... View more
01-02-2024
12:21 PM
@arutkwccu The parquet components were not "deprecated", they were moved out of the default distribution via https://issues.apache.org/jira/browse/NIFI-12282 Apache limits the max size of the project and at times some nars need to be moved out of the distribution to avoid exceeding that max allowed project download size or components less commonly used may be moved out. Does not mean that these components ate no longer being contributed to or updated with the newer NiFi release versions. It does mean however that you will need to manually download the nifi-parquet-nar and any dependency nar(s) it needs that are not already included in your NiFi distribution. You can download nars directly from maven central. Here is the link to the maven central for the nifi-parquet-nar: https://central.sonatype.com/artifact/org.apache.nifi/nifi-parquet-nar/overview If you look at the "Dependencies" tab, you'll see that there is a dependecy on another nar (nifi-hadoop-libraries-nar). Neither of these nars are inlcuded in the default Apache NiFi 2.0.-M1 release. The simplest way to add these nars to your NiFi is to download them into the <path-toNiFi>/extensions/" folder. NiFi will auto-load nars placed on this folder without any need for a NiFi restart. You can find the nars by clicking on the "versions" tab for each required nar and clciking on "Browse" next to the NiFi version you want the nar for. Here are the direct links for the two nars you need for parquet: nifi-parquet-nar - https://repo1.maven.org/maven2/org/apache/nifi/nifi-parquet-nar/2.0.0-M1/nifi-parquet-nar-2.0.0-M1.nar nifi-hadoop-libraries-nar - https://repo1.maven.org/maven2/org/apache/nifi/nifi-hadoop-libraries-nar/2.0.0-M1/nifi-hadoop-libraries-nar-2.0.0-M1.nar If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
01-02-2024
09:57 AM
1 Kudo
@elemenop Not all local changes result in a change to the version controlled flow. It is typical for a single NiFi-Registry to be used by multiple NiFi deployments (example would be dev and prod deployments). A flow built in the dev environment may be have different configuration based on that dev environment versus what is used in the same dataflow deployed in the prod environment. The following actions are not considered local changes: stopping/starting processors modifying sensitive property values modifying remote process group URLs updating a processor that was referencing a non-existent controller service to reference an externally available controller service assigning, creating, modifying or deleting parameter contexts creating, modifying or deleting variables Sharing the exact Apache NiFi or Cloudera Flow Management (CFM) version along with the reproduction steps executed in yoru environment would be helpful. If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
01-02-2024
06:33 AM
@benimaru It is important to understand that NiFi does not replicate active FlowFiles (objects queued in connection between NiFi processor components) across multiple nodes. So in a five node NiFi cluster where you are load balancing FlowFiles across all nodes, each node has a unique subset of the full data received. This if node 1 goes down, the FlowFiles on node 1 will not be processed until node 1 is back up. 100% agree with @joseomjr that placing an external load balancer in front of the ListenUDP endpoint is the correct solution to ensure high availability of that endpoint across all your NiFi nodes. If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
01-02-2024
06:25 AM
@pratschavan This sound like a configuration issue with your GetFile processor. Sounds like you may have it configured so that you are consuming the same file over and over again. GetFile processor was deprecated in favor of the newer listFie and FetchFile processors. Are you running a single standalone instance of NiFi or running a multi-node NiFi cluster? How is your GetFile processor configured? Thanks, Matt
... View more
01-02-2024
06:16 AM
1 Kudo
@Alexy The answer to your question is neither... The following property is relative to the configuration of the "fileNamingPattern" property. <maxHistory>60</maxHistory> Let's say we have the following fileNamingPattern property: <fileNamePattern>logs/archived/app.%d{yyyy-MM-dd}.log.gz</fileNamePattern> This pattern would create one log file per day and then maxHistory would would dictate number of days to retain as 60. In this specific example the number of days retained and number of files and number of days both equal 60. and another example: <fileNamePattern>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app_%d{yyyy-MM-dd_HH}.log</fileNamePattern> Here you will notice the date pattern is based on hourly logs. So the "maxHistory" property in this example would dictate the number of hours worth of logs to retain (not days). Now lets look at a slightly different example: <fileNamePattern>logs/archived/app.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>10MB</maxFileSize> In this example you'll notice "%i" has been added to pattern. "%i" works in conjunction with the "maxFileSize" property. throughout a single day any time the log file sizes reaches 10MB, an incremental number log for the same day is created. app.2024-01-02.1.log.gz app.2024-01-02.2.log.gz app.2024-01-02.3.log.gz ... The MaxHistory does not take into consideration the "%i" incremental logs. It is still based on the %d pattern to retain 60 days of logs. So in this case you would have any number of files potentially created across those 60 days. The same applies to the hours based example if "%i" is added to the fileNamingPattern. in order to protect disk usage you will often see the following used: <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app_%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy> What this does is create hourly logs that will incrementally role during each hour if the log file reaches 100MB in size. Then to prevent excessive disk usage should logging unexpectedly increase in log generation, the "TotalSizeCap" will start deleting the oldest rolled logs until max usage is below 10GB. This may mean that 30 hours of logs are no longer retained, but you avoid disk usage issues when the unexpected happens. Hopefully this clears this up for you. NOTE: Above is based on the "SizeAndTimeBasedRollingPolicy". LogBack as other rolling Policy providers. If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more
12-22-2023
09:21 AM
@Rohit1997jio Your images shared above are from CFM 2.1.5. HDF 3.3.0 was released way back in 2017. I strongly encourage you to upgrade away form such an old version for security and bug fixes reasons. That being said, you could use the ExecuteScript processor to manually penalize a FlowFile. A penalized FlowFile will be ignored by the downstream processor until the penalty duration has lapsed. on the "setting" tab set the desired 10 sec "Penalty Duration" you want applied to every FlowFile the ExecuteScript processor executes against. In the "properties" tab select "Groovy" as the "Script Engine" property value. In the "properties" tab add the following script to the "Script Body" property: FlowFile flowFile = session.get()
if (flowFile == null) {
return;
}
session.transfer(session.penalize(flowFile), REL_SUCCESS) Use the ExecuteScript processor in place of your "ControlRate" processor in your dataflow to apply the 10 second penalty to all FlowFiles being looped for retry. If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "Accept as Solution" on one or more of them that helped. Thank you, Matt
... View more