Apache Nifi, as of 1.9.0, now allows live reloading for nars. This was a major pain point in providing custom processors to a live cluster and keeping processes in line with active code. Now it is as simple as placing the nar in the $NIFI_HOME/extensions directory.

Configure

In the config/nifi.properties there is now a nifi.nar.library.autoload.directory value that is defaulted to ./extensions.

nifi.properties
nifi.nar.library.autoload.directory=./extensions

Test

Go ahead and drop the sample custom processor nar into the $NIFI_HOME/extensions directory.

nifi-app.log
INFO [NAR Auto-Loader] org.apache.nifi.nar.NarAutoLoaderTask Found ./extensions/examples-1.0-SNAPSHOT.nar in auto-load directory
INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Starting load process for 1 NARs...
INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Creating class loaders for 1 NARs...
INFO [NAR Auto-Loader] org.apache.nifi.nar.NarClassLoaders Loaded NAR file: /projects/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./work/nar/extensions/examples-1.0-SNAPSHOT.nar-unpacked as class loader org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/examples-1.0-SNAPSHOT.nar-unpacked]
INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Successfully created class loaders for 1 NARs, 0 were skipped
INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Finished NAR loading process!

Verify in the web interface

Have fun, and thanks for reading.