Title
Create new category
Edit page index title
Edit category
Edit link
NiFi Upgrade Standalone Toolkit — Usage Guide
This guide walks customers through using the Acceldata NiFi Upgrade Toolkit to move from ODP NiFi 1.28.1 → ODP NiFi 2.7.2 and the matching upgrade for NiFi Registry 1.x → 2.7.2.
The toolkit covers three stages:
Pre-upgrade check — assesses your current install and flow for blockers.
Pre-upgrade backup + install — captures a backup, then installs the 2.7.2 binaries with automatic rollback on failure.
Post-upgrade check — validates the upgraded service over its REST API.
The toolkit handles assessment, backup, install, and post-cutover validation. It does not rewrite flow.json.gz (processor replacement, bundle edits) — that work is done in the NiFi UI, in NiFi Registry, or via your own migration tooling.
Clustered NiFi: run the installer node-by-node (stop all nodes → install on each in turn → start nodes one at a time). The installer warns if it detects clustering but does not orchestrate across nodes.
Prerequisites (both sections)
Python 3.6+ on the NiFi / Registry host
Java 21 available on the host (required by NiFi 2 / Registry 2)
Shell access (root/sudo for install stage)
The toolkit tarball extracted on the host:
Section 1 - NiFi
1.1 Stage 1: Pre-upgrade check
Assesses your NiFi 1.28.1 install and flow for anything that will break under NiFi 2.
Run:
NIFI_HOME and JAVA_HOME environment variables are accepted in place of the flags.
What it Checks
No. | Check | Flags |
|---|---|---|
1 | Java version | Java 21 must be available for NiFi 2 |
2 | Removed / deprecated components | Kafka 1/2/2.6, HBase, Hive, Solr, GetTCP, etc. |
3 | Removed scripting languages | Ruby, Python (Jython), ECMAScript, Lua |
4 | Process group variables | Must migrate to Parameter Contexts |
5 |
| Removed in NiFi 2 |
6 | Templates | Removed in NiFi 2 |
7 | Legacy Kerberos | Principal/keytab/password patterns to move to Kerberos User Services |
8 | Bundle coordinate changes | NAR moves/renames (Jolt, |
9 | Sensitive properties | Missing |
10 | Controller service wiring | Dangling refs, disabled dependencies, circular graphs |
11 | Expression Language | EL functions removed in NiFi 2 (none on the 1.28.1 → 2.7.2 path) |
12 | Third-party NARs | Non- |
13 | Groovy compatibility | Groovy scripted components (manual validation) |
14 | Cluster configuration | ZK connect string, TLS/S2S vs NiFi 2 behavior |
15 | Parameter Context conflicts | Duplicates / empty contexts |
16 | Authorization |
|
17 | Connector architecture | Processors that need new controller services in NiFi 2 |
Output
Two files are produced in the working directory:
File | Contents |
|---|---|
| Machine-readable report |
| Human-readable log of the run |
Prefix | Meaning |
|---|---|
| No issues found |
| Advisory — review, not a hard blocker |
| Must be resolved before upgrading |
Exit codes: 0 = clean (OK / WARN), 2 = one or more ERROR items, 1 = script error.
Resolve every ERROR in the report before continuing.
1.2 Stage 2a: Pre-upgrade backup
Captures conf/, the flow, and the content/provenance repository paths referenced in nifi.properties into a timestamped tarball under /var/tmp/nifi-upgrade-backups/.
The installer in Stage 2b refuses to run without a backup archive from this step.
1.3 Stage 2b: Install NiFi 2.7.2
Fetches the NiFi 2.7.2 tarball from the Acceldata repo, verifies its sha256, stops the running 1.x service, extracts the new version, merges configuration from the Stage 2a backup, flips the /usr/odp/current/nifi symlink, and starts the service. On any failure after service stop, the script automatically rolls back — symlinks revert, conf/ is restored from the backup, and the 1.x service is started again.
Supported Operating Systems: RHEL 8, RHEL 9, Debian, Ubuntu (auto-detected).
Common overrides
Flag | Default | Purpose |
|---|---|---|
|
| Base directory under which the new version is extracted |
|
| Symlink that is flipped to the new version |
|
| Java 21 location for NiFi 2 |
|
| Where Stage 2a archives are read from |
| Acceldata repo URL | Override for air-gapped installs |
Checksum: every tarball is fetched with its .sha256 and verified via sha256sum -c before anything is extracted. A mismatch aborts before any state is mutated.
1.4 Stage 3: Post-upgrade check (NiFi)
Calls the NiFi 2 REST API and validates the upgrade landed cleanly.
Check | What it Verifies | |
|---|---|---|
1 | NiFi version | Reports |
2 | Invalid processors |
|
3 | Controller services | None in |
4 | Cluster node health | All nodes |
5 | System diagnostics | NiFi reachable; |
6 | Bulletin board | No ERROR-level bulletins |
Exit 2 if the version is not 2.x, any processor or controller service is INVALID, any cluster node is not CONNECTED, or ERROR-level bulletins are present.
Section 2 - NiFi Registry
The Registry upgrade follows the same three-stage flow. If you run NiFi and Registry on the same host, you can combine the pre-check and post-check invocations as shown at the bottom of this section.
2.1 Stage 1: Pre-upgrade Check
Validates Registry 1.x configuration before moving to Registry 2.x: Java 21, nifi-registry.properties, bootstrap.conf, authorizers, identity providers.
NIFI_REGISTRY_HOME can be set instead of --nifi-registry-home. Exit codes match the NiFi pre-check: 0 for clean, 2 if any ERROR is reported.
2.2 Stage 2a: Pre-upgrade Backup
The Stage 2a script for NiFi also captures Registry state when --nifi-registry-home is supplied to the installer; for a Registry-only or standalone Registry host, back up the conf/ directory and any database/flow-storage directory referenced by nifi-registry.properties before running Stage 2b.
2.3 Stage 2b: Install NiFi Registry 2.7.2
Registry is installed by the same upgrade_nifi.sh script when --nifi-registry-home is passed. The same checksum verification and automatic rollback apply.
Registry symlink default: --current-symlink-registry /usr/odp/current/nifi-registry.
Validates the Registry REST API after cutover.
Check | What it Verifies |
|---|---|
| Reports |
| Reachable |
| Responds |
2.5 Running NiFi + Registry Together
Both checks can be combined in a single invocation:
Aggregate exit codes follow the strictest result across the two checks.
Recommended workflow
Run the pre-upgrade check for NiFi (and Registry, if applicable). Resolve every
ERRORin the report.Run the pre-upgrade backup with
--execute.Run the installer (
upgrade_nifi.sh) on each host. For clusters, do this node-by-node.Run the post-upgrade check against the upgraded service URLs.
Verify your flows in the NiFi UI and your buckets in the Registry UI.
Support
This toolkit is shipped by Acceldata. For production upgrade runbooks and assistance, contact your Acceldata or ODP distribution support channel.