Member since
07-30-2019
3436
Posts
1632
Kudos Received
1012
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 129 | 01-27-2026 12:46 PM | |
| 556 | 01-13-2026 11:14 AM | |
| 1188 | 01-09-2026 06:58 AM | |
| 987 | 12-17-2025 05:55 AM | |
| 490 | 12-17-2025 05:34 AM |
10-28-2021
09:43 AM
Very nice. Thanks
... View more
10-27-2021
02:23 PM
@galvinpaul1718 I 'd suggest verifying your download was good. Then remove the nifi-registry work directory before restarting. The work directory is rebuilt from the nifi-registry lib dir contents. Make sure you did not run out of disk space. If you found this response assisted with your query, please take a moment to login and click on "Accept as Solution" below this post. Thank you, Matt
... View more
10-27-2021
02:20 PM
@Apoo The EvaluateJsonPath processor dynamic properties do not support NiFi Expression language, so being able to pass dynamic strings to these dynamic properties from FlowFile attributes is not possible. The dynamic properties only support NiFi parameters. You may want to raise an Apache NiFi jira requesting adding NiFi EL support to these dynamic properties or even contribute the the open source code if you so choose. Thank you, Matt
... View more
10-27-2021
02:05 PM
@AhmedAlghwinem You are correct that this typically means you are missing some authorization for the currently authenticated user. To help you with this issue, I would need to know a lot more about your NiFi-Registry setup configuration. 1. nifi-registry.properties file would tell me which method of user authentication you have setup, any identity.mappings you have setup, and which authorizer you are using. 2. identity.providers.xml file tells me how the login provider if used specified in the above nifi-registry.properties file is configured. 3. authorizers.xml file tells you how the configured authorizer specified in the above nifi-registry.properties file is configured and what user-group-providers are being used. 4. Depending on configurations used in authorizers.xml, you may have a users.xml and authorizations.xml file generated as well or you may be using an external authorizer like Ranger. 5. I would need to know your user string (case sensitive) that is displayed in the upper right corner of the NiFi-Registry UI after you login/authenticate into nifi-registry, so that it can be checked against the configured policies to see what your user is missing. The policies used by NiFi-Registry are covered in the admin guide here: https://nifi.apache.org/docs/nifi-registry-docs/html/administration-guide.html#access-policies You will want to look at the "Special Privilege Policies" which include what would be needed by an admin user to create new buckets. Providing the above details in a Cloudera Support ticket provided you have a support subscription with Cloudera would allow support to quickly and easily assist you with this issue. If you found this response assisted with your query, please take a moment to login and click on "Accept as Solution" below this post. Thank you, Matt
... View more
10-22-2021
07:41 PM
Thanks Matt, It is very helpful
... View more
10-19-2021
02:04 PM
@AA24 The easiest way to accomplish this is to use the PutDistributedMapCache processor in one flow to write the attributes values you want to share to a cache server and on your other flow use the FetchDistributedMapCache processor to retrieve those cached attributes and add them to your other FlowFiles that need them. Another option is to use the MergeContent processor. On flow one where it looks like you are extracting your session_id and job_id you would use the ModfiyBytes processor to zero out the content leaving you with a FlowFile that only has attributes and then use MergeContent to combine this FlowFile with the FlowFile in your second flow. In the MergeContent processor you would configure "Attribute Strategy" to use "Keep All Unique Attributes". If you found this response assisted with your query, please take a moment to login and click on "Accept as Solution" below this post. Thank you, Matt
... View more
10-19-2021
01:55 PM
1 Kudo
@TRSS_Cloudera It i snot clear to me how you have designed your dataflow to remove all files from source SFTP server except newest file? Assuming state was not an issue (since you said you flow works if you manually clear state), how do you have your flow built? There exists a GetSFTP processor that does not maintain state. So you could have your flow that uses the listSFTP and FetchSFTP to always get the newest "history" file and record that that latest "history" files last modified timestamp in something like a distributedMapCache server. Then have your GetFile run once a day using the "Cron driven" scheduling strategy to get all files (Delete Original= false)in that directory (would get latest history file also) and then get the current stored last modified time from the map cache and then via a RouteOnAttribute send any to FlowFiles where last modified stored is newer then what is on files retrieved by GetFile and finally send to a processor to remove them from source SFTP processor. While above would work in an "ideal" world. You would run in to issues when their was an interruption in the running dataflow causing multiple new files to get listed by the listSFTP processor because you would not know which one end up having its last modified timestamp stored in distributedMapCache. But in such a case the worst case if you have a couple files left lingering until the next run results in just one history file being listed and it goes back to expected. Otherwise, there are script base processor you could use to build you own scripted handling here. To be honest it seems like wasted IO to have NiFi consume these files int NiFi just to auto-terminate them when you could use an ExecuteStreamCommand processor to invoke a script that connects to your SFTP server and simply removes what you do not want without needing to pull anything across the network or write file content to NiFi that you don't need Hopefully this gives you some options to think about. If you found this response assisted with your query, please take a moment to login and click on "Accept as Solution" below this post. Thank you, Matt
... View more
10-19-2021
01:18 PM
@AA24 NiFi was designed as an always on type of dataflow design. As such the NiFi processor components support "Timer Driven" and "Cron Driven" Scheduling Strategy types. That being said, the ability to tell a processor to "Run Once" exists within NiFi. You could manually do from within the UI by right clicking on the NiFi processor component and selecting "run once" from the pop-up context menu. The next thing to keep in mind is that anything that you can do via the UI, you can also do via a curl command. So it is possible to build a dataflow that could trigger the "run once" api call against the processor you want to fetch from the appropriate DB. You can not execute "run once" against a PG nor would I recommend doing so. You want to only trigger the file responsible for ingesting your data and leave all the other processor running all the time so they process whatever data they have queued at anytime. First you to create your trigger flow, so you could have a getFile to consume the trigger file and use maybe a RouteOnContent processor to send the FlowFile to either an InvokeHTTP configured to invoke run-once on your Oracle configured processor or an invokeHTTP configured to invoke run-once on your MySQL configured processor. Using your browser's developer tools is an easy way to capture the rest-api calls that are made when you manually perform them the action via the UI. If you found this response assisted with your query, please take a moment to login and click on "Accept as Solution" below this post. Thank you, Matt
... View more
10-12-2021
11:09 AM
Thanks @MattWho I took a more thorough look at the authorizers.xml file and I had a bad path to the users.xml file in the file-provider. There may still be some issues with the way this is being deployed, but I'm able to interact with the canvas now, so it's progress.
... View more