Automate the enabling/disabling of Apache NiFi controller services

In our company we are using cloudera manager to manage our CDH (Cloudera Data Hub) cluster and to automate cluster operations. We recently had to upgrade our CDH to CDP (Cloudera Data Platform), since we are using Apache NiFi to control our real-time data, every time we had to restart NiFI during the upgrade all the controller services got disabled and after the restart we had to enable them manually which is very time consuming due to vast number of controller services.
2 answers

Hi, I hope this helps!

After a Controller Service has been configured, it must be enabled in order to run. Do this using the "Enable" button (Enable Button) in the far-right column of the Controller Services tab. In order to modify an existing/running controller service, the DFM needs to stop/disable it (as well as all referencing reporting tasks and controller services). Do this using the "Disable" button (Disable Button). Rather than having to hunt down each component that is referenced by that controller service, the DFM has the ability to stop/disable them when disabling the controller service in question. When enabling a controller service, the DFM has the option to either start/enable the controller service and all referencing components or start/enable only the controller service itself.


In order to automate this manual task a python script has been written which uses the NiPyApi package to connect to NiFi via REST API and get the list of all controller services and enable them just in a few seconds instead of manually enabling them one by one which takes hours.