<!DOCTYPE html>
<html class="no-js" lang="en">
    <head>
        <title>Apache NiFi MiNiFi Getting Started</title>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="shortcut icon" href="/assets/images/nifi16.ico"/>
        <link rel="stylesheet" href="/stylesheets/app.min.92da7048339401bf53463b01188254399d9c8a2138949712827fee24e79c12e4.css">
        <link rel="stylesheet" href="/assets/stylesheets/font-awesome.min.css">
        <script src="/assets/js/modernizr.js"></script>
        <script src="/assets/js/webfontloader.js"></script>
        <script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var baseUri = "//matomo.privacy.apache.org/";
    _paq.push(['setTrackerUrl', baseUri + 'matomo.php']);
    _paq.push(['setSiteId', '28']);
    var trackerElement = document.createElement('script');
    var firstScriptElement = document.getElementsByTagName('script')[0];
    trackerElement.async = true;
    trackerElement.src = baseUri + 'matomo.js';
    var firstScriptElement = document.getElementsByTagName('script')[0];
    if (window.location.host === 'nifi.apache.org') {
      firstScriptElement.parentNode.insertBefore(trackerElement, firstScriptElement);
    }
  })();
</script>
</head>
    <body><div class="sticky contain-to-grid">
    <nav class="top-bar" data-topbar role="navigation">
        <ul class="title-area">
            <li class="name">
                <h1>
                    <a href="index.html">
                        <img id="logo-top-bar" src="/assets/images/minifi-drop-white.svg" alt="MiNiFi"/>
                    </a>
                </h1>
            </li>
            
            <li class="toggle-topbar menu-icon"><a href="#"><span></span></a></li>
        </ul>

        <section class="top-bar-section">
            
            <ul class="right">
                <li class="has-dropdown">
                    <a href="#">Project</a>
                    <ul class="dropdown">
                        <li><a href="/index.html">Home</a></li>
                        <li><a href="https://blogs.apache.org/nifi/"><i class="fa fa-external-link external-link"></i>Apache NiFi Blog</a></li>
                        <li><a href="https://www.apache.org/licenses/"><i class="fa fa-external-link external-link"></i>License</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Documentation</a>
                    <ul class="dropdown">
                        <li><a href="getting-started.html"><i class="fa"></i>Getting Started</a></li>
                        <li><a href="minifi-java-agent-quick-start.html"><i class="fa"></i>MiNiFi Java Quick Start Guide</a></li>
                        <li><a href="system-admin-guide.html"><i class="fa"></i>Administrator's Guide</a></li>
                        <li><a href="minifi-toolkit.html"><i class="fa"></i>Converter Toolkit</a></li>
                        <li><a href="faq.html"><i class="fa"></i>FAQ</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/MiNiFi"><i class="fa fa-external-link external-link"></i>Wiki</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Downloads</a>
                    <ul class="dropdown">
                        <li><a href="download.html">Download MiNiFi Components</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/MINIFI/Release+Notes"><i class="fa fa-external-link external-link"></i>MiNiFi Java Release Notes</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/MINIFI/Release+Notes#ReleaseNotes-MiNiFi(C++)"><i class="fa fa-external-link external-link"></i>MiNiFi C++ Release Notes</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Community</a>
                    <ul class="dropdown">
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide"><i class="fa fa-external-link external-link"></i>Contributor Guide</a></li>
                        <li><a href="../mailing_lists.html">Mailing Lists &amp; Chat</a></li>
                        <li><a href="../people.html">People</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Development</a>
                    <ul class="dropdown">
                        <li><a href="../release-guide.html">Release Guide</a></li>
                        <li><a href="../licensing-guide.html">Licensing Guide</a></li>
                        <li><a href="https://gitbox.apache.org/repos/asf?p=nifi.git"><i class="fa fa-external-link external-link"></i>Source - Java Agent</a></li>
                        <li><a href="https://github.com/apache/nifi"><i class="fa fa-external-link external-link"></i>Source - GitHub - Java Agent</a></li>
                        <li><a href="https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git"><i class="fa fa-external-link external-link"></i>Source - C++ Agent</a></li>
                        <li><a href="https://github.com/apache/nifi-minifi-cpp"><i class="fa fa-external-link external-link"></i>Source - GitHub - C++ Agent</a></li>
                        <li><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20NIFI%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22MiNiFi%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC"><i class="fa fa-external-link external-link"></i>MiNiFi Java Issues</a></li>
                        <li><a href="https://issues.apache.org/jira/browse/MINIFICPP"><i class="fa fa-external-link external-link"></i>MiNiFi C++ Issues</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">ASF Links</a>
                    <ul class="dropdown">
                        <li><a href="https://www.apache.org"><i class="fa fa-external-link external-link"></i>Apache Software Foundation</a></li>
                        <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html"><i class="fa fa-external-link external-link"></i>Privacy Policy</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html"><i class="fa fa-external-link external-link"></i>Sponsorship</a></li>
                        <li><a href="https://www.apache.org/security/"><i class="fa fa-external-link external-link"></i>Security</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html"><i class="fa fa-external-link external-link"></i>Thanks</a></li>
                    </ul>
                </li>
                <li>
                    <a href="../index.html">Apache NiFi</a>
                </li>
            </ul>
        </section>
    </nav>
</div>
          <div class="row">
            <div class="large-12 columns">
              <div class="large-space"></div>
	<h1 id="getting-started-with-minifi">Getting started with MiNiFi</h1>
<p>This page explains how to configure and deploy MiNiFi agents.</p>
<p>The Java agent is able to run most of <a href="http://nifi.apache.org/docs.html">NiFi&rsquo;s available processors</a>, but is a larger binary distribution (49MB) and consumes greater system resources (24MB max JVM heapsize by default). If you need maximum flexibility to make routing and processing decisions at your data&rsquo;s point of origin, the Java agent is a good fit.</p>
<p>The C++ agent is a smaller binary (3.2MB), consumes low system memory (about 5MB at idle) but has <a href="https://github.com/apache/nifi-minifi-cpp#caveats">a limited subset of processors</a>. If your primary concern is gathering and pushing data to downstream consumers and minimizing system impact, the C++ agent is a good fit.</p>
<ol>
<li>Install the appropriate OS level dependencies:</li>
</ol>
<h4 id="minifi-java">MiNiFi Java:</h4>
<ul>
<li>Java 1.8+</li>
</ul>
<h4 id="minifi-c">MiNiFi C++:</h4>
<h6 id="rhelcentos">RHEL/CentOS:</h6>
<ul>
<li>yum install -y epel-release</li>
<li>yum install -y leveldb</li>
</ul>
<h6 id="debianubuntu">Debian/Ubuntu:</h6>
<ul>
<li>apt install -y libleveldb-dev</li>
<li>apt install -y libxml2</li>
</ul>
<ol start="2">
<li>Download the relevant compressed binary from the <a href="download.html">Downloads</a> page</li>
<li>Copy and decompress the binary to your target deployment environment</li>
<li>Set the MINIFI_HOME environment variable to your decompressed binary directory</li>
<li>From $MINIFI_HOME, ./bin/minifi.sh {start|stop|run|restart|status|flowStatus|dump|install}</li>
</ol>
<p><em>flowStatus</em> and <em>dump</em> are available only for MiNiFi Java.</p>
<p>For MiNiFi Java, the agent logs to $MINIFI_HOME/logs/minifi-app.log.</p>
<p>For MiNiFi C++, the agent logs to $MINIFI_HOME/minifi-app.log.txt</p>
<h1 id="configuring-minifi-agent-flows">Configuring MiNiFi Agent Flows</h1>
<p>Agents execute the flow defined in $MINIFI_HOME/conf/config.yml. The shipped config.yml file has an &ldquo;empty&rdquo; flow.</p>
<p>While it&rsquo;s possible to create and modify config.yml programmatically or by hand, the more common scenario is to:</p>
<ol>
<li>Use NiFi&rsquo;s web interface to define a flow</li>
<li>Save the flow as a template and download its XML file</li>
<li>Use the <a href="minifi-toolkit.html">Converter Toolkit</a> to convert the template XML to an equivalent config.yml</li>
<li>Put the config.yml file in $MINIFI_HOME/conf and start the agent.</li>
</ol>
<h1 id="pushing-data-from-minifi-to-nifi">Pushing Data From MiNiFi to NiFi</h1>
<p>What follows is an illustrated walkthrough of configuring MiNiFi and NiFi to generate and collect log data.</p>
<p>If you&rsquo;re new to NiFi, watch the <a href="http://nifi.apache.org/videos.html">NiFi introductory video series</a> before proceeding. If you don&rsquo;t already have NiFi, you can download it from <a href="http://nifi.apache.org/download.html">here</a>.</p>
<h2 id="configuring-nifi-to-receive-data">Configuring NiFi to Receive Data</h2>
<p>First, check that $NIFI_HOME/conf/nifi.properties has a Site to Site input socket port specified:</p>
<pre><code># Site to Site properties
nifi.remote.input.host=
nifi.remote.input.secure=false
nifi.remote.input.socket.port=1026
nifi.remote.input.http.enabled=true
nifi.remote.input.http.transaction.ttl=30 sec
</code></pre><p>Restart NiFi so changes take effect.</p>
<p>On NiFi&rsquo;s web UI, place an Input Port &ldquo;From MiNiFi&rdquo; and connect it to a downstream processor:
<img src="../assets/images/minifi/nifi-receive.png" alt=""></p>
<h2 id="creating-the-minifi-flow">Creating the MiNiFi Flow</h2>
<p>Create a new process group, and double click on it to enter it. Working inside this new processor group will let us create a clean template that includes flow components meant to run in MiNiFi.</p>
<p>Inside the process group, create a Remote Process Group (RPG) and give it the URL of your NiFi instance. The RPG will connect to NiFi and discover the input port created earlier.</p>
<p>Create a TailFile processor and connect it to the RPG, selecting the &ldquo;From MiNiFi&rdquo; input port.
<img src="../assets/images/minifi/minifi-flow.png" alt=""></p>
<p>Now create a template, download it as an XML file, and download the <a href="download.html">Converter ToolKit</a>.</p>
<p>From the toolkit directory:</p>
<pre><code>[user@host minifi-toolkit-0.0.1]# ./bin/config.sh transform /path/to/template.xml /output/path/config.yml

Java home: /usr/lib/jvm/jre-1.8.0-openjdk
MiNiFi Toolkit home: /minifi-toolkit-0.0.1


No validation errors found in template.
</code></pre><p>Open the config.yml file and add Port and Host to a Properties section at the end of the Input Ports section (at the end of the file):</p>
<pre><code>Remote Processing Groups:
- name: http://localhost:8080/nifi
  url: http://localhost:8080/nifi
  comment: ''
  timeout: 30 sec
  yield period: 10 sec
  Input Ports:
  - id: AUTOGENERATED_NIFI_PORT_ID_HERE
    name: MiNiFi-input
    comment: ''
    max concurrent tasks: 1
    use compression: false
    Properties: # Deviates from spec and will later be removed when this is autonegotiated		
        Port: 1026		
        Host Name: localhost
</code></pre><p>Copy the generated config.yml file into $MINIFI/conf/config.yml, and start MiNiFi:</p>
<pre><code>[user@host nifi-minifi-cpp-0.1.0]# ./bin/minifi.sh start
Starting MiNiFi with PID 463 and pid file /nifi-minifi-cpp-0.1.0/bin/.minifi.pid
</code></pre><p>After a few seconds, you should see NiFi receiving data on the input port:
<img src="../assets/images/minifi/nifi-received.png" alt=""></p>
<p>If you do not see data in the queue, it may have already been consumed by the downstream processor (PutFile in this case). If no data is arriving on the input port at all, check the MiNiFi log files, and confirm that the file being tailed exists and is not empty.</p>

</div>
          </div>
        <div class="row">
    <div class="large-12 columns footer">
        <a href="https://www.apache.org">
            <img id="asf-logo" alt="Apache Software Foundation" src="/assets/images/asf_logo.png" width="200" style="margin:0px 10px" />
        </a>
        <a  href="https://www.apache.org/events/current-event.html">
            <img src="https://www.apache.org/events/current-event-234x60.png" style="margin:0px 10px" />
        </a>
        <div id="copyright">
            <p>Copyright &#169; 2022 The Apache Software Foundation, Licensed under the <a
                    href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/>Apache, the
                Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software
                Foundation.</p>
        </div>
    </div>
</div>
        <script src="/assets/js/jquery.min.js"></script>
        <script src="/assets/js/foundation.js"></script>
        <script src="/assets/js/app.js"></script>
    </body>
</html>