LoginSignup
1
1

More than 5 years have passed since last update.

Apache MiNiFi on Windows

Posted at

はじめに

Apache NiFi projectのサブプロジェクトであるMiNiFiの動作確認をしてみました。Hortonworksでも「Apache MiNiFiによる IOT のためのエッジインテリジェンス」として記事が書かれています。例によってHDFは自分のPCでは動きませんので個々のプロダクトを起動させます。
今回はMiNiFiをインストールしたPCからNiFiがインストールされているPCまでファイルの転送を実施してみます。
SFTPやSCPなどと同様にファイル転送をしますが、NiFiでファイル転送すると、ある程度履歴やファイル属性がGUIで確認できます。

1. 前提

以下の環境で動作した内容を記述しています。
- Windows 10 Home (64bit) *Memory 8G
- JDK 1.8

また、NiFiのインストールについては、こちらを参照。

2. MiNiFiの入手

https://nifi.apache.org/minifi/download.htmlよりダウンロードします。
- MiNiFi (Java)
- MiNiFi Toolkit Binaries
それぞれのセクションよりJavaのバイナリ(zip版)をダウンロードします。

3. Nifiの設定

MiNiFiがNifiにアクセスできるようにINPUTポートの設定をします。これによりSite-to-Siteのコミュニケーションが可能となります。

3.1 Nifiのpropety設定と起動

[NiFiをインストールしたフォルダ]\conf\nifi.propertiesの以下の部分を修正します。
今回はSSL通信は使いませんのでsecureオプションはfalseでOKです。

nifi.properties
# Site to Site properties
nifi.remote.input.host=localhost
nifi.remote.input.secure=false
nifi.remote.input.socket.port=10000

bin\run-nifi.batでNiFiを起動します。

3.2 Input PortとFile出力の設定

起動したらNifi Canvas上でInput Portの設定をします。「From MiNiFi」という名前で設定してみます。
image.png

次にPutFile Processorを設定します。
image.png

ファイルの出力が失敗しても成功してもプロセスは終了させるので、SETTINGSのfailureとsuccessは両方チェックします。
image.png

PROPERTIESのDirectory(出力先)を指定します。ここではc:\dev\NIFI\outputとします。
image.png

From MiNiFiのInput PortからPutFile Processorを接続します。以下のようになればOKです。
image.png

3.3 MiNiFi用設定

MiNiFi用の設定はNiFi本体で設定し、それをTemplateとしてExportしてMiNiFiで使用します。

まずはRemote Process Groupを作成します。URLにはLocalhostのURLではなく、PCの実IPでURLを指定します。
image.png

GetFile Processorを設定します。
image.png

PROPERTIESでInput Directoryを指定しますが、NiFiがインストールしてある環境に同じ構造のフォルダ構成がないと警告が出るので、c:\NIFI\inputを作成しておいてから設定します。
image.png

GetFile ProcessorとRemote Process Groupを接続します。以下のようになればOKです。
image.png

GetFile Processorとsuccess connectionとRemote Process Groupの3つを選択し、Create Templateをクリックします。
image.png

Template名を入力し、Templateを作成します。ここでは「MiNiFi Flow」としています。
image.png

3.4 Templateのダウンロードと変換

右上のメニューでTemplatsを選択します。
image.png

ダウンロードボタンをクリックし、TemplateをXMLファイルとしてダウンロードします。
image.png

事前にダウンロードしてあったminifi-toolkit-0.3.0を好きな場所に展開し、ダウンロードしたTemplateをMiNiFi Toolkitのconfig.batでconfig.ymlファイルに変換します。

C:\dev\NIFI\minifi-toolkit-0.3.0>bin\config.bat transform MiNiFi_Flow.xml config.yml
No validation errors found in converted configuration.

作成したファイルはMiNiFiをインストールする別のPCにコピーします。

4. MiNiFiのインストールと起動

4.1 MiNiFiの展開

事前にダウンロードしてあったMiNiFiを動作させたいフォルダに展開します。

 C:\dev\MINIFI\minifi-0.3.0 のディレクトリ

2018/01/16  22:27    <DIR>          .
2018/01/16  22:27    <DIR>          ..
2018/01/16  22:27    <DIR>          bin
2018/01/16  22:27    <DIR>          conf
2018/01/16  22:27    <DIR>          content_repository
2018/01/01  18:03    <DIR>          docs
2018/01/16  22:27    <DIR>          flowfile_repository
2018/01/16  22:27    <DIR>          lib
2016/12/20  14:13            28,824 LICENSE
2018/01/16  22:27    <DIR>          logs
2017/11/27  12:08            35,959 NOTICE
2018/01/16  22:27    <DIR>          provenance_repository
2016/09/26  11:23             5,014 README
2018/01/01  22:43    <DIR>          run
2018/01/16  22:27    <DIR>          state
2018/01/16  22:27    <DIR>          work
               3 個のファイル              69,797 バイト
              13 個のディレクトリ  25,663,508,480 バイトの空き領域

4.2 config.ymlのコピー

Templateから作成したconfig.ymlをconfフォルダにコピーします。

4.3 MiNiFiの起動

bin\run-minifi.batを起動します。

C:\dev\MINIFI\minifi-0.3.0>bin\run-minifi.bat

5. 動作テスト

5.1 NiFiの処理を開始

NiFi本体のProcessorをStartします。何も選択せずにStartをクリックするとすべての処理が開始します。
image.png

開始後は緑の三角が表示されます。
image.png

5.2 Inputファイルの準備

MiNiFiを起動させたPCのinputフォルダ(c:\NIFI\input)に適当なファイルを置いてみます。
すると自動的にNiFi本体のoutputフォルダ(c:\dev\NIFI\output)にファイルが移動されます。

5.3 ファイル転送履歴などの確認

Input PortやProcessorを右クリックし、View Data Provinceで転送履歴を確認することができます。
image.png

以下のようにファイルの転送時間や属性が確認できます。
image.png

また、転送されたファイルの中身を参照することもでき、テキストファイル、jpegファイルそれぞれに合わせた表示形式でファイルの確認ができました。
image.png

参考URL

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1