Mirror of Apache NiFi
Switch branches/tags
Clone or download
Pull request Compare This branch is even with apache:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.github NIFI-1615 Removing Apache License header and adding exclusion for Pul… Oct 5, 2016
nifi-api NIFI-5323-RC1 prepare for next development iteration Jun 20, 2018
nifi-assembly NIFI-5327 Adding Netflowv5 protocol parser Sep 19, 2018
nifi-bootstrap NIFI-5323-RC1 prepare for next development iteration Jun 20, 2018
nifi-commons NIFI-5449: Added Base64 Encode/Decode functions to RecordPath Sep 14, 2018
nifi-docker NIFI-5487 Move the packages to a version agnostic path and create sym… Aug 8, 2018
nifi-docs NIFI-5578 Correct errors in EL Guide including Date Manipulation and … Sep 21, 2018
nifi-external NIFI-5423 Removed duplicated dependencies in sub-modules Aug 15, 2018
nifi-framework-api NIFI-5466: Keep a running total of stats for each component. Refactor… Aug 21, 2018
nifi-maven-archetypes NIFI-5323-RC1 prepare for next development iteration Jun 20, 2018
nifi-mock NIFI-5147, NIFI-5566 Added CryptographicHashAttribute and Cryptograph… Sep 18, 2018
nifi-nar-bundles NIFI-5542 Added support for node groups to FileAccessPolicyProvider Sep 20, 2018
nifi-toolkit NIFI-5476 Added logic to check CA certificate signature against addit… Aug 7, 2018
.gitignore NIFI-5249 Dockerfile enhancements: create data repository and log dir… Jun 14, 2018
.travis-output-filters NIFI-4942 Fixes Travis CI build Apr 20, 2018
.travis.sh NIFI-1657 - Configure travis-ci to run mvn verify in ja_JP, fr_FR, an… Feb 11, 2017
.travis.yml NIFI-4963: Added Hive3 bundle Jun 13, 2018
KEYS [NIFI-5240] adding GPG key for Scott Aslan Jun 8, 2018
LICENSE [NIFI-3501] Upgrade D3 to 3.5.17 and allow npm to pull it down at bui… Feb 21, 2017
NOTICE NIFI-5022 This closes #2588. InvokeAWSGatewayApi processor Jun 11, 2018
README.md NIFI-4922 - Add badges to the README file Mar 4, 2018
appveyor.yml NIFI-4664, NIFI-4662, NIFI-4660, NIFI-4659 moved tests which are timi… Dec 6, 2017
pom.xml NIFI-5479 Upgraded Jetty. Moved where we unpack bundled deps to so we… Aug 28, 2018


Apache NiFi

Build Status Docker pulls Version HipChat

Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data.

Table of Contents


Apache NiFi was made for dataflow. It supports highly configurable directed graphs of data routing, transformation, and system mediation logic. Some of its key features include:

  • Web-based user interface
    • Seamless experience for design, control, and monitoring
    • Multi-tenant user experience
  • Highly configurable
    • Loss tolerant vs guaranteed delivery
    • Low latency vs high throughput
    • Dynamic prioritization
    • Flows can be modified at runtime
    • Back pressure
    • Scales up to leverage full machine capability
    • Scales out with zero-master clustering model
  • Data Provenance
    • Track dataflow from beginning to end
  • Designed for extension
    • Build your own processors and more
    • Enables rapid development and effective testing
  • Secure
    • SSL, SSH, HTTPS, encrypted content, etc...
    • Pluggable fine-grained role-based authentication/authorization
    • Multiple teams can manage and share specific portions of the flow


  • JDK 1.8 or newer
  • Apache Maven 3.1.0 or newer
  • Git Client (used during build process by 'bower' plugin)

Getting Started

  • Read through the quickstart guide for development. It will include information on getting a local copy of the source, give pointers on issue tracking, and provide some warnings about common problems with development environments.
  • For a more comprehensive guide to development and information about contributing to the project read through the NiFi Developer's Guide.

To build:

  • Execute mvn clean install or for parallel build execute mvn -T 2.0C clean install. On a modest development laptop that is a couple of years old, the latter build takes a bit under ten minutes. After a large amount of output you should eventually see a success message.

      laptop:nifi myuser$ mvn -T 2.0C clean install
      [INFO] Scanning for projects...
      [INFO] Inspecting build with total of 115 modules...
          ...tens of thousands of lines elided...
      [INFO] ------------------------------------------------------------------------
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 09:24 min (Wall Clock)
      [INFO] Finished at: 2015-04-30T00:30:36-05:00
      [INFO] Final Memory: 173M/1359M
      [INFO] ------------------------------------------------------------------------

To deploy:

  • Change directory to 'nifi-assembly'. In the target directory, there should be a build of nifi.

      laptop:nifi myuser$ cd nifi-assembly
      laptop:nifi-assembly myuser$ ls -lhd target/nifi*
      drwxr-xr-x  3 myuser  mygroup   102B Apr 30 00:29 target/nifi-1.0.0-SNAPSHOT-bin
      -rw-r--r--  1 myuser  mygroup   144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.tar.gz
      -rw-r--r--  1 myuser  mygroup   144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.zip
  • For testing ongoing development you could use the already unpacked build present in the directory named "nifi-version-bin", where version is the current project version. To deploy in another location make use of either the tarball or zipfile and unpack them wherever you like. The distribution will be within a common parent directory named for the version.

      laptop:nifi-assembly myuser$ mkdir ~/example-nifi-deploy
      laptop:nifi-assembly myuser$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy
      laptop:nifi-assembly myuser$ ls -lh ~/example-nifi-deploy/
      total 0
      drwxr-xr-x  10 myuser  mygroup   340B Apr 30 01:06 nifi-1.0.0-SNAPSHOT

To run NiFi:

  • Change directory to the location where you installed NiFi and run it.

      laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
      laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start
  • Direct your browser to http://localhost:8080/nifi/ and you should see a screen like this screenshot: image of a NiFi dataflow canvas

  • For help building your first data flow see the NiFi User Guide

  • If you are testing ongoing development, you will likely want to stop your instance.

      laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
      laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh stop

Getting Help

If you have questions, you can reach out to our mailing list: dev@nifi.apache.org (archive). For more interactive conversations and chat, we're also often available in IRC: #nifi on irc.freenode.net and in #NiFi on ASF HipChat.


See http://nifi.apache.org/ for the latest documentation.


Except as otherwise noted this software is licensed under the Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Export Control

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software:

Apache NiFi uses BouncyCastle, Jasypt, JCraft Inc., and the built-in java cryptography libraries for SSL, SSH, and the protection of sensitive configuration parameters. See http://bouncycastle.org/about.html http://www.jasypt.org/faq.html http://jcraft.com/c-info.html http://www.oracle.com/us/products/export/export-regulations-345813.html for more details on each of these libraries cryptography features.