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:

  1. Pre-upgrade check — assesses your current install and flow for blockers.
  2. Pre-upgrade backup + install — captures a backup, then installs the 2.7.2 binaries with automatic rollback on failure.
  3. 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:
Bash
Copy

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:

Bash
Copy

NIFI_HOME and JAVA_HOME environment variables are accepted in place of the flags.

What it Checks

No.CheckFlags
1Java versionJava 21 must be available for NiFi 2
2Removed / deprecated componentsKafka 1/2/2.6, HBase, Hive, Solr, GetTCP, etc.
3Removed scripting languagesRuby, Python (Jython), ECMAScript, Lua
4Process group variablesMust migrate to Parameter Contexts
5EVENT_DRIVEN schedulingRemoved in NiFi 2
6TemplatesRemoved in NiFi 2
7Legacy KerberosPrincipal/keytab/password patterns to move to Kerberos User Services
8Bundle coordinate changesNAR moves/renames (Jolt, FileParameterProvider, …)
9Sensitive propertiesMissing nifi.sensitive.props.key; PBE algorithms dropped in NiFi 2
10Controller service wiringDangling refs, disabled dependencies, circular graphs
11Expression LanguageEL functions removed in NiFi 2 (none on the 1.28.1 → 2.7.2 path)
12Third-party NARsNon-org.apache.nifi bundles
13Groovy compatibilityGroovy scripted components (manual validation)
14Cluster configurationZK connect string, TLS/S2S vs NiFi 2 behavior
15Parameter Context conflictsDuplicates / empty contexts
16AuthorizationFileAuthorizer (removed in 2.7.1+); Ranger major version
17Connector architectureProcessors that need new controller services in NiFi 2

Output

Two files are produced in the working directory:

FileContents
nifi-pre-upgrade-report-<timestamp>.jsonMachine-readable report
nifi-pre-upgrade-report-<timestamp>.txtHuman-readable log of the run
PrefixMeaning
OKNo issues found
WARNAdvisory — review, not a hard blocker
ERRORMust 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.

Bash
Copy

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).

Bash
Copy

Common overrides

FlagDefaultPurpose
--install-root/usr/odpBase directory under which the new version is extracted
--current-symlink-nifi/usr/odp/current/nifiSymlink that is flipped to the new version
--java21-home/usr/lib/jvm/java-21Java 21 location for NiFi 2
--backup-root/var/tmp/nifi-upgrade-backupsWhere Stage 2a archives are read from
--tarball-urlAcceldata repo URLOverride 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.

Bash
Copy
#CheckWhat it Verifies
1NiFi versionReports 2.x
2Invalid processorsinvalidCount == 0 across all process groups
3Controller servicesNone in validationStatus=INVALID
4Cluster node healthAll nodes CONNECTED (skipped for standalone)
5System diagnosticsNiFi reachable; versionInfo present
6Bulletin boardNo 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.

Bash
Copy

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.

Bash
Copy

Registry symlink default: --current-symlink-registry /usr/odp/current/nifi-registry.

Validates the Registry REST API after cutover.

Bash
Copy
CheckWhat it Verifies
/aboutReports 2.x
/bucketsReachable
/access/configResponds

2.5 Running NiFi + Registry Together

Both checks can be combined in a single invocation:

Bash
Copy

Aggregate exit codes follow the strictest result across the two checks.

  1. Run the pre-upgrade check for NiFi (and Registry, if applicable). Resolve every ERROR in the report.
  2. Run the pre-upgrade backup with --execute.
  3. Run the installer (upgrade_nifi.sh) on each host. For clusters, do this node-by-node.
  4. Run the post-upgrade check against the upgraded service URLs.
  5. 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.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard
  Last updated