NIFI-2321 This closes #707. Update Getting Started doc for 1.0 UI changes: made text edits/improvements and added new screenshots

This commit is contained in:
Andrew Lim 2016-07-22 10:31:47 -04:00 committed by joewitt
parent da238b16ef
commit 986f951ae8
4 changed files with 52 additions and 42 deletions

View File

@ -23,7 +23,7 @@ Apache NiFi Team <dev@nifi.apache.org>
Who is This Guide For?
----------------------
This guide is written for user who have never used, have had limited exposure to, or only accomplished specific tasks within NiFi.
This guide is written for users who have never used, have had limited exposure to, or only accomplished specific tasks within NiFi.
This guide is not intended to be an exhaustive instruction manual or a reference guide. The
link:user-guide.html[User Guide] provides a great deal of information
and is intended to be a much more exhaustive resource and is very useful as a reference guide, as well.
@ -62,15 +62,15 @@ Downloading and Installing NiFi
-------------------------------
NiFi can be downloaded from the link:http://nifi.apache.org/download.html[NiFi Downloads Page]. There are two packaging options
available: a "tarball" that is tailored more to Linux and a zip file that is more applicable for Windows users. Mac OSX users
available: a "tarball" that is tailored more to Linux and a zip file that is more applicable for Windows users. Mac OS X users
may also use the tarball or can install via Homebrew.
To install via Homebrew, simply run the command `brew install nifi`.
For users who are not running OSX or do not have Homebrew installed, after downloading the version of NiFi that you
For users who are not running OS X or do not have Homebrew installed, after downloading the version of NiFi that you
would like to use simply extract the archive to the location that you wish to run the application from.
For information on how to configure the instance of NiFi (for instance, to configure security, data storage
For information on how to configure the instance of NiFi (for example, to configure security, data storage
configuration, or the port that NiFi is running on), see the link:administration-guide.html[Admin Guide].
@ -89,9 +89,9 @@ This will launch NiFi and leave it running in the foreground. To shut down NiFi,
was launched and hold the Ctrl key while pressing C.
=== For Linux/Mac OSX users
=== For Linux/Mac OS X users
For Linux and OSX users, use a Terminal window to navigate to the directory where NiFi was installed.
For Linux and OS X users, use a Terminal window to navigate to the directory where NiFi was installed.
To run NiFi in the foreground, run `bin/nifi.sh run`. This will leave the application running until
the user presses Ctrl-C. At that time, it will initiate shutdown of the application.
@ -102,7 +102,7 @@ NiFi can be shutdown by executing the command `bin/nifi.sh stop`.
=== Installing as a Service
Currently, installing NiFi as a service is supported only for Linux and Mac OSX users. To install the application
Currently, installing NiFi as a service is supported only for Linux and Mac OS X users. To install the application
as a service, navigate to the installation directory in a Terminal window and execute the command `bin/nifi.sh install`
to install the service with the default name `nifi`. To specify a custom name for the service, execute the command
with an optional second argument that is the name of the service. For example, to install NiFi as a service with the
@ -124,10 +124,14 @@ This will bring up the User Interface, which at this point is a blank canvas for
image:new-flow.png["New Flow"]
Near the top of the UI are a few toolbars that will be very important to create your first dataflow:
The UI has multiple tools to create and manage your first dataflow:
image:nifi-toolbar-components.png["Toolbar Components"]
The Global Menu contains the following options:
image:global-menu.png["Global Menu"]
=== Adding a Processor
@ -216,12 +220,12 @@ the Processor that is bringing data into the system will eventually experience t
data so that our system has the ability to recover.
Finally, we have the Prioritizers on the right-hand side. This allows us to control how the data in this queue is ordered.
We can drag Prioritizers from the "Available prioritizers" list to the "Selected prioritizers" list in order to active
We can drag Prioritizers from the "Available prioritizers" list to the "Selected prioritizers" list in order to activate
the prioritizer. If multiple prioritizers are activated, they will be evaluated such that the Prioritizer listed first
will be evaluated first and if two FlowFiles are determined to be equal according to that Prioritizers, the second Prioritizer
will be evaluated first and if two FlowFiles are determined to be equal according to that Prioritizer, the second Prioritizer
will be used.
For the sake of this discussion, we can simply click `Add`. to add the Connection to our graph. We should now see that the Alert
For the sake of this discussion, we can simply click `Add` to add the Connection to our graph. We should now see that the Alert
icon has changed to a Stopped icon (
image:iconStop.png[Stopped]
). The LogAttribute Processor, however, is now invalid because its `success` Relationship has not been connected to
@ -237,21 +241,21 @@ At this point, we have two Processors on our graph, but nothing is happening. In
click on each one individually and then right-click and choose the `Start` menu item. Alternatively, we can select the first
Processor, and then hold the Shift key while selecting the other Processor in order to select both. Then, we can
right-click and choose the `Start` menu item. As an alternative to using the context menu, we can select the Processors and
then click the Start icon in the toolbar at the top of the screen.
then click the Start icon in the Operate palette.
Once started, the icon in the top-left corner of the Processors will change from a stopped icon to a running icon. We can then
stop the Processors by using the Stop icon in the toolbar or the `Stop` menu item.
stop the Processors by using the Stop icon in the Operate palette or the `Stop` menu item.
Once a Processor has started, we are not able to configure it anymore. Instead, when we right-click on the Processor, we are
given the option to view its current configuration. In order to configure a Processor, we must first stop the Processor and
wait for any tasks that may be executing to finish. The number of tasks currently executing is shown in the top-right
wait for any tasks that may be executing to finish. The number of tasks currently executing is shown near the top-right
corner of the Processor, but nothing is shown there if there are currently no tasks.
=== Getting More Info for a Processor
With each Processor having the ability to expose multiple different Properties and Relationships, it can become quite
difficult to remember how all of the different pieces work for each Processor. To address this, you are able to right-click
With each Processor having the ability to expose multiple different Properties and Relationships, it can be challenging
to remember how all of the different pieces work for each Processor. To address this, you are able to right-click
on a Processor and choose the `Usage` menu item. This will provide you with the Processor's usage information, such as a
description of the Processor, the different Relationships that are available, when the different Relationships are used,
Properties that are exposed by the Processor and their documentation, as well as which FlowFile Attributes (if any) are
@ -285,7 +289,7 @@ categorizing them by their functions.
- *EncryptContent*: Encrypt or Decrypt Content
- *ReplaceText*: Use Regular Expressions to modify textual Content
- *TransformXml*: Apply an XSLT transform to XML Content
- *TransformJSON*: Apply a JOLT specification to transform JSON Content
- *JoltTransformJSON*: Apply a JOLT specification to transform JSON Content
=== Routing and Mediation
- *ControlRate*: Throttle the rate at which data can flow through one part of the flow
@ -458,8 +462,8 @@ carried along with the content.
Each FlowFile has a minimum set of Attributes:
- *filename*: A filename that can be used to store the data to a local or remote file system
- *path*: The name of a directory that can be used to store the data to a local or remote file system
- *filename*: A filename that can be used to store the data to a local or remote file system.
- *path*: The name of a directory that can be used to store the data to a local or remote file system.
- *uuid*: A Universally Unique Identifier that distinguishes the FlowFile from other FlowFiles in the system.
- *entryDate*: The date and time at which the FlowFile entered the system (i.e., was created). The value of this
attribute is a number that represents the number of milliseconds since midnight, Jan. 1, 1970 (UTC).
@ -529,7 +533,7 @@ As we extract Attributes from FlowFiles' contents and add user-defined Attribute
we have some mechanism by which we can use them. The NiFi Expression Language allows us to access and manipulate FlowFile Attribute
values as we configure our flows. Not all Processor properties allow the Expression Language to be used, but many do. In order to
determine whether or not a property supports the Expression Language, a user can hover over the Help icon (
icon:iconInfo.png["Help"]
image:iconInfo.png["Help"]
) in the Properties tab of the Processor Configure dialog. This will provide a tooltip that shows a description of the property, the
default value, if any, and whether or not the property supports the Expression Language.
@ -551,7 +555,7 @@ the value of the `attr2` Attribute, we can do this with the following expression
The Expression Language contains many different functions that can be used in order to perform the tasks needed for routing and manipulating
Attributes. Functions exist for parsing and manipulating strings, comparing string and numeric values, manipulating and replacing values,
and comparing values. A full explanation of the different functions available is out of scope of this document, but the
and comparing values. A full explanation of the different functions available is out of the scope of this document, but the
link:expression-language-guide.html[Expression Language Guide] provides far greater detail for each of the functions.
In addition, this Expression Language guide is built in to the application so that users are able to easily see which functions are available
@ -573,21 +577,25 @@ A template can be thought of as a reusable sub-flow. To create a template, follo
while dragging a box around the desired components on the canvas.
- Select the Create Template Icon (
image:iconNewTemplate.png[New Template Icon]
) from the middle toolbar at the top of the screen.
- Provide a name and optionally comments about the template.
) from the Operate palette.
- Provide a name and optionally a description for the template.
- Click the `Create` button.
Once we have created a template, we can now use it as a building block in our flow, just as we would a Processor. To do this, we will
click and drag the Template icon from the left-most toolbar onto our canvas. We can then choose the template that we would like to add
or our canvas and click the `Add` button.
click and drag the Template icon (
image:iconTemplate.png[Template]
) from the Component toolbar onto our canvas. We can then choose the template that we would like to add
to our canvas and click the `Add` button.
Finally, we have the ability to manage our templates by using the Template Management dialog. To access this dialog, click the Template
icon in the top-right toolbar. From here, we can see which templates exist and filter the templates to find the templates of interest.
On the right-hand side of the table is icon to Export, or Download, the template as an XML file. This can then be provided to others so
Finally, we have the ability to manage our templates by using the Template Management dialog. To access this dialog, select Templates
from the Global Menu. From here, we can see which templates exist and filter the templates to find the templates of interest.
On the right-hand side of the table is an icon to Export, or Download, the template as an XML file. This can then be provided to others so
that they can use your template.
To import a template into your NiFi instance, click the `Browse` button in the top-right corner of the dialog and navigate to the file on
your computer. Then click the `Import` button. The template will now show up in your table, and you can drag it onto your canvas as you would
To import a template into your NiFi instance, select the Upload Template icon (
image:iconUploadTemplate.png[Upload Template]
) from the Operator palette, click the Search Icon and navigate to the file on
your computer. Then click the `Upload` button. The template will now show up in your table, and you can drag it onto your canvas as you would
any other template that you have created.
There are a few important notes to remember when working with templates:
@ -605,7 +613,7 @@ your system.
=== Status Bar
Near the top of the NiFi screen is a blue bar that is referred to as the Status Bar. It contains a few important statistics about the current
Near the top of the NiFi screen under the Component toolbar is a bar that is referred to as the Status Bar. It contains a few important statistics about the current
health of NiFi. The number of Active Threads can indicate how hard NiFi is currently working, and the Queued stat indicates how many FlowFiles
are currently queued across the entire flow, as well as the total size of those FlowFiles.
@ -626,7 +634,7 @@ In order to see this information, we can right-click on a component and choose t
the time since NiFi was started, or up to 24 hours, whichever is less. The amount of time that is shown here can be extended or reduced
by changing the configuration in the properties file.
In the top-right corner is a drop-down that allows the user to select which metric they are viewing. The graph on the bottom allows the
In the top-right corner of this dialog is a drop-down that allows the user to select which metric they are viewing. The graph on the bottom allows the
user to select a smaller portion of the graph to zoom in.
@ -634,15 +642,14 @@ user to select a smaller portion of the graph to zoom in.
In addition to the statistics provided by each component, a user will want to know if any problems occur. While we could monitor the
logs for anything interesting, it is much more convenient to have notifications pop up on the screen. If a Processor logs
anything as a WARNING or ERROR, we will see a "Bulletin Indicator" show up in the top-left-hand corner of the Processor. This indicator
anything as a WARNING or ERROR, we will see a "Bulletin Indicator" show up in the top-right-hand corner of the Processor. This indicator
looks like a sticky note and will be shown for five minutes after the event occurs. Hovering over the bulletin provides information about
what happened so that the user does not have to sift through log messages to find it. If in a cluster, the bulletin will also indicate which
node in the cluster emitted the bulletin. We can also change the log level at which bulletins will occur in the Settings tab of the Configure
dialog for a Processor.
If the framework emits a bulletin, we will also see this bulletin indicator occur in the Status Bar at the top of the screen.
The right-most icon in the NiFi Toolbar is the Bulletin Board icon. Clicking this icon will take us to the bulletin board where
we can see all bulletins that occur across the NiFi instance and can filter based on the component, the message, etc.
If the framework emits a bulletin, we will also see a bulletin indicator highlighted at the top-right of the screen.
In the Global Menu is a Bulletin Board option. Clicking this option will take us to the bulletin board where we can see all bulletins that occur across the NiFi instance and can filter based on the component, the message, etc.
Data Provenance
@ -650,8 +657,7 @@ Data Provenance
NiFi keeps a very granular level of detail about each piece of data that it ingests. As the data is processed through
the system and is transformed, routed, split, aggregated, and distributed to other endpoints, this information is
all stored within NiFi's Provenance Repository. In order to search and view this information, we can click the Data Provenance icon (
image:iconProvenance.png[Data Provenance, width=28]) in the top-right corner of the canvas. This will provide us a table that lists
all stored within NiFi's Provenance Repository. In order to search and view this information, we can select Data Provenance from the Global Menu. This will provide us a table that lists
the Provenance events that we have searched for:
image:provenance-table.png[Provenance Table]
@ -696,7 +702,11 @@ of the FlowFile, we will see the 'before' and 'after' content claims. We are the
content within NiFi itself, if the data format is one that NiFi understands how to render.
Additionally, in the Replay section of the tab, there is a 'Submit' button that allows the user to re-insert the FlowFile into the flow and re-process it from exactly the point
at which the event happened. This provides a very powerful mechanism, as we are able to modify our flow in real time, re-process a FlowFile,
at which the event happened.
image:event-content-replay.png[Event Content Replay]
This provides a very powerful mechanism, as we are able to modify our flow in real time, re-process a FlowFile,
and then view the results. If they are not as expected, we can modify the flow again, and re-process the FlowFile again. We are able to perform
this iterative development of the flow until it is processing the data exactly as intended.
@ -730,13 +740,13 @@ addition to this Getting Started Guide:
- link:overview.html[Apache NiFi Overview] - Provides an overview of what Apache NiFi is, what it does, and why it was created.
- link:user-guide.html[Apache NiFi User Guide] - A fairly extensive guide that is often used more as a Reference Guide, as it has pretty
lengthy in discussing all of the different components that comprise the application. This guide is written with the NiFi Operator as its
lengthy discussions of all of the different components that comprise the application. This guide is written with the NiFi Operator as its
audience. It provides information on each of the different components available in NiFi and explains how to use the different features
provided by the application.
- link:administration-guide.html[Administration Guide] - A guide for setting up and administering Apache NiFi for production environments.
This guide provides information about the different system-level settings, such as setting up clusters of NiFi and securing access to the
web UI and data.
- link:expression-language-guide.html[Express Language Guide] - A far more exhaustive guide for understanding the Expression Language than
- link:expression-language-guide.html[Expression Language Guide] - A far more exhaustive guide for understanding the Expression Language than
is provided above. This guide is the definitive documentation for the NiFi Expression Language. It provides an introduction to the EL
and an explanation of each function, its arguments, and return types as well as providing examples.
- link:developer-guide.html[Developer's Guide] - While not an exhaustive guide to All Things NiFi Development, this guide does provide a

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB