Apache NiFiファースト・ステップ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>Apache NiFi]]
--Apache NiFiファースト・ステップ
--[[Apache NiFiセカンド・ステップ]]
*目次 [#r0303ee6]
#contents
*概要 [#r7ffacea]
-ファーストステップ @ Windows。
-基本的なことは、[[コチラ>Apache NiFi]]で確認して下さい。
*インストール [#gc23e52c]
**ダウンロードする。 [#vebcb21d]
-以下からダウンロード(Windowsならzipファイル形式のもの)
>
-Apache NiFi Downloads~
https://nifi.apache.org/download.html
-最新の、nifi-toolkitではない方をダウンロード。~
(nifi-toolkitは多分色々なツールが同梱されてる)
-ダウンロードしたらMD5 or SHA1などのハッシュ値をチェック...
(HTTPSではないので、バイナリがオカシクなることが有り得る...
certutil -hashfile ...nifi-1.6.0-bin.zip MD5
certutil -hashfile ...nifi-1.6.0-bin.zip SHA1
**インストールする。 [#k4514376]
任意のパスに解凍すればイイらしい。とりあえず、Cドラ直下に...
([[JMeterっぽい。ZIP64の可能性があるので解凍ツールに注意...
**起動する。 [#q6aee609]
binフォルダ以下の「run-nifi.bat」バッチを管理者実行。~
(これもまたJMeterっぽい。設定ファイルなどは取り合えずス...
-2018年9月より[[Oracke Javaは有償>Java有償化について調べ...
同等の機能を持つAdopt Open JDKをインストール
--[[Java8のLTS版で、hotspotを選択する。>Java有償化につい...
-必要に応じて、confフォルダ以下のnifi.propertiesでポート...
(私の環境で、Docker for windowsが8080を使用していてUnaut...
故に、nifi.propertiesのnifi.web.http.portで、ポート番号を...
*最も簡単な利用 [#pe0b11b6]
**画面にアクセスする。 [#xe0165b2]
-既定値 : http://localhost:8080/nifi/
-変更後 : http://localhost:8081/nifi/
※ 改めてやってみると、「run-nifi.bat」実行後のロードが長...
#ref(1.png,left,nowrap,手順1,60%)
以下の辺りを理解しつつ、次へ進む。
-Getting Started with Apache NiFi > I Started NiFi. Now W...
https://nifi.apache.org/docs/nifi-docs/html/getting-start...
**Processorを追加する。 [#mb965021]
-Processorの追加により、データフローを作成を開始する。
-Processorについては、[[コチラ>Apache NiFi#h3f2273c]]を参...
***追加する。 [#p2ce2a03]
-ヘッダのComponentToolBarのProcessorアイコンを方眼紙風の...
-追加するProcessorを選択できるダイアログが表示される。
-Processorを選択して[Add]ボタンを押下(必要に応じて[Filte...
-ここでは、ファースト・ステップにお似合いのProcessorを追...
--[GetFile Processor]
--[LogAttributes Processor]
***設定する。 [#t385944e]
-Processorをダブルクリック(若しくは、右クリック -> confi...
-[GetFile Processor]の設定を、[Property]タブから行う。
#ref(2-1.png,left,nowrap,手順2-1,60%)
--ポイント
---太字のプロパティは必須のプロパティ
---必須プロパティが構成されるまで、Processorは開始できな...
--設定値
---Input Directory : ./data-in
-[LogAttributes Processor]の設定を、[Settings]タブから行...
#ref(2-2.png,left,nowrap,手順2-2,60%)
--ポイント~
末端のProcessorになるので、FlowFileの処理が完了した場合、~
データを削除することを考慮する必要がある。
--設定値
---Automatically Terminate Relationships : checked to [su...
***使い方を確認する。 [#lc1be49e]
-問題がある場合は、warningマークが表示される。~
ここでは、接続が無いため、warningマークが表示される。
-また、Processorを右クリックし、~
[View usage]を選択すると、Processorのヘルプが表示される。
-次に[[Connectionで接続をする>#zfbd0c39]]。
**Connectionで接続する。 [#zfbd0c39]
***接続する [#q082df56]
Connectionで接続する場合、以下のように操作する。
#ref(3.png,left,nowrap,手順3,60%)
***設定する [#oae98dde]
するとダイアログが表示されるので
-[Settings]タブから設定する。
--Connectionに名前を付ける
[Name] : hogehoge
--Relationshipの設定 : 既定値
--Dataの有効期限とQueueの設定
---[FlowFile Expiration] : 既定値
---[Back Pressure Object Threshold] : 既定値
---[Back Pressure Data Size Threshold] : 既定値
--キューの優先順位の設定~
1つ以上のPrioritizerを設定し、~
1つ目のPrioritizerで優先順位が同じだった場合、~
2つ目のPrioritizerで優先順位が再評価される。
---[Selected Prioritizers] :~
FirstInFirstOutPrioritizer~
OldestFlowFileFirstPrioritizer
-[Detail]タブ
--Relationshipの設定 : 既定値
#ref(4.png,left,nowrap,手順4,60%)
-ここまでの設定で、Processorは停止状態になる。
#ref(5.png,left,nowrap,手順5,60%)
**データフローを実行する。 [#df3ecf76]
***実行 [#h71f1f41]
-ぞれぞれ、Processorを選択してOperatorの再生ボタンを押下...
#ref(6.png,left,nowrap,手順6,60%)
-すると、以下の状態になり、データフローを実行できる。
#ref(7.png,left,nowrap,手順7,60%)
-この状態で、data-inフォルダにファイルを放り込むと確実に...
LogAttribute 1.6.0 の仕様が No description provided. のた...
***修正 [#kc452241]
そこで急遽、PutFileというProcessorを追加・接続して、以下...
-PutFile Processor
--Directory : ./data-out
--[Automatically Terminate Relationships] : checked to [f...
-Connection
--[Name] : hogehoge
#ref(8.png,left,nowrap,手順8,60%)
***確認 [#e75c8ad1]
すると、data-inフォルダに放り込んだファイルがdata-outフォ...
※ 後日談:[[LogAttributeについての仕様を発見した。>Apache...
*分岐、分割・集約辺りの利用 [#wdc4e229]
**分割 [#ff8a41e1]
[[前述の、GetFile - PutFile の例>#kc452241]]にSplitText P...
以下のようなデータフローを定義して分割を評価できる。
***データフロー [#e57d94fe]
#ref(9.png,left,nowrap,手順9,60%)
※ なお、上記のようにConnectionを曲げたい場合は、矢印上で...
***ポイント [#kef4f25b]
-Processor
--SplitText~
Line Split Count : 2
--PutFile
---PutFile(Connection 2-1 に接続)~
Directory : ./data-out1
---PutFile(Connection 2-2 に接続)~
Directory : ./data-out2
-Connection
--[Name] : 2-1~
[Relationship] : original, failure
--[Name] : 2-2~
[Relationship] : splits
***動作確認 [#s921e592]
-Processorを選択していない状態でOperatorの再生ボタンを押...
-data-inフォルダに放り込んだファイルがdata-out1, 2フォル...
--data-out1 : data-inに放り込んだファイル
--data-out2 : SplitTextで抽出した先頭の2行のテキストを含...
**分割・集約 [#g7a357d1]
SplitContent、MergeContent Processorを追加、~
以下のようなデータフローを定義して分割・集約を評価できる。
***データフロー [#f15981c1]
#ref(10.png,left,nowrap,手順10,60%)
***ポイント [#s47620ca]
-Processor
--GetFile~
Directory : ./data-in
--PutFile
---PutFile(Connection 3-1 に接続)~
Directory : ./data-temp
---PutFile(Connection 3-2 に接続)~
Directory : ./data-out
--分割・集約
---SplitContent([;]区切りで分割)~
Byte Sequence : 3B ※ [;]を意味する。~
Automatically Terminate Relationships : original
---UpdateAttribute(ファイル名変更)~
filename : ${UUID()} ※ [+]ボタンでプロパティ追加する。
---MergeContent(統合) : 既定値
-Connection
--[Name] : 2-1~
[Relationship] : splits
--[Name] : 2-2~
[Relationship] : splits
--[Name] : 3-1~
[Relationship] : success
--[Name] : 3-2~
[Relationship] : failure, merged, original
***動作確認 [#recb6dd0]
-Processorを選択していない状態でOperatorの再生ボタンを押...
-data-inフォルダに放り込んだファイルがdata-temp、data-out...
--data-temp
---Byte Sequenceで分割されたファイル
---ファイル名は、UpdateAttributeにより、UUIDに変更される。
--data-out
---分割後、再び集約されたファイル。
---Byte Sequenceで分割後、マージされるため、Byte Sequence...
*変換・処理辺りの利用 [#k205f338]
[[前述の、GetFile - PutFile の例>#kc452241]]にCompressCon...
以下のようなデータフローを定義して変換・処理を評価できる。
**データフロー [#ra3c7765]
#ref(11.png,left,nowrap,手順11,60%)
**ポイント [#v50a9f46]
***Processor [#k53ae6ec]
-GetFile~
Directory : ./data-in
-PutFile
--PutFile(Connection 2 に接続)~
Directory : ./data-temp
--PutFile(Connection 4 に接続)~
Directory : ./data-out
-変換・処理
--CompressContent
---Mode : compress
---Compression Format : gzip
--CompressContent
---Mode : decompress
---Compression Format : gzip
***Connection [#e5a2dda6]
-[Name] : 1~
[Relationship] : success
-[Name] : 2~
[Relationship] : failure, success
-[Name] : 3~
[Relationship] : failure, success
-[Name] : 4~
[Relationship] : failure, success
**動作確認 [#lea084e7]
-Processorを選択していない状態でOperatorの再生ボタンを押...
-data-inフォルダに放り込んだファイルがdata-temp、data-out...
--data-temp~
CompressContent(compress)で圧縮されたデータ・ファイル
--data-out~
CompressContent(decompress)で解凍されたデータ・ファイル
*その他、基本操作 [#edd7e123]
**Processor・Connectionの配置 [#a629c351]
ヘッダのComponentToolBarのProcessor・Connectionアイコンを...
**Connection [#zb806696]
***曲げたい場合 [#xc996b18]
矢印上でダブル・クリックする。
***Queueのクリア [#i211020d]
-Terminateしたフローファイルがキューに詰まることがある。
-この場合、Connectionを右クリックして、Empty Queueする。
**Template [#yfb3fd95]
***セーブ・ロード [#zd947de2]
-セーブ
--OperatorからCreate Templateする。
--ファイルに出力する場合、
---右上メニューからTemplateを選択し、
---Create TemplateをDownloadする。
-ロード
--ファイルから入力する場合、OperatorからUpload Templateす...
--ヘッダのComponentToolBarのTemplateアイコンを方眼紙風の...
***ProcessGroupに格納 [#j7e1785d]
テンプレートを保存する前に、以下の手順を踏む。
-ヘッダのComponentToolBarのProcessGroupアイコンを方眼紙風...
-ProcessGroupに名称を付与し、ProcessGroup上に他のProcesso...
これにより、データフローがProcessGroupとして纏まる。
**サーバーの実行 [#e9288c7d]
・・・
*[[セカンド・ステップ>Apache NiFiセカンド・ステップ]] [#j...
*参考 [#rdf45f1f]
**[[参考資料>Apache NiFi#ce179366]] [#e99bd3ab]
**[[Apache NiFi - Processor]] [#xa8a227f]
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>Apache NiFi]]
--Apache NiFiファースト・ステップ
--[[Apache NiFiセカンド・ステップ]]
*目次 [#r0303ee6]
#contents
*概要 [#r7ffacea]
-ファーストステップ @ Windows。
-基本的なことは、[[コチラ>Apache NiFi]]で確認して下さい。
*インストール [#gc23e52c]
**ダウンロードする。 [#vebcb21d]
-以下からダウンロード(Windowsならzipファイル形式のもの)
>
-Apache NiFi Downloads~
https://nifi.apache.org/download.html
-最新の、nifi-toolkitではない方をダウンロード。~
(nifi-toolkitは多分色々なツールが同梱されてる)
-ダウンロードしたらMD5 or SHA1などのハッシュ値をチェック...
(HTTPSではないので、バイナリがオカシクなることが有り得る...
certutil -hashfile ...nifi-1.6.0-bin.zip MD5
certutil -hashfile ...nifi-1.6.0-bin.zip SHA1
**インストールする。 [#k4514376]
任意のパスに解凍すればイイらしい。とりあえず、Cドラ直下に...
([[JMeterっぽい。ZIP64の可能性があるので解凍ツールに注意...
**起動する。 [#q6aee609]
binフォルダ以下の「run-nifi.bat」バッチを管理者実行。~
(これもまたJMeterっぽい。設定ファイルなどは取り合えずス...
-2018年9月より[[Oracke Javaは有償>Java有償化について調べ...
同等の機能を持つAdopt Open JDKをインストール
--[[Java8のLTS版で、hotspotを選択する。>Java有償化につい...
-必要に応じて、confフォルダ以下のnifi.propertiesでポート...
(私の環境で、Docker for windowsが8080を使用していてUnaut...
故に、nifi.propertiesのnifi.web.http.portで、ポート番号を...
*最も簡単な利用 [#pe0b11b6]
**画面にアクセスする。 [#xe0165b2]
-既定値 : http://localhost:8080/nifi/
-変更後 : http://localhost:8081/nifi/
※ 改めてやってみると、「run-nifi.bat」実行後のロードが長...
#ref(1.png,left,nowrap,手順1,60%)
以下の辺りを理解しつつ、次へ進む。
-Getting Started with Apache NiFi > I Started NiFi. Now W...
https://nifi.apache.org/docs/nifi-docs/html/getting-start...
**Processorを追加する。 [#mb965021]
-Processorの追加により、データフローを作成を開始する。
-Processorについては、[[コチラ>Apache NiFi#h3f2273c]]を参...
***追加する。 [#p2ce2a03]
-ヘッダのComponentToolBarのProcessorアイコンを方眼紙風の...
-追加するProcessorを選択できるダイアログが表示される。
-Processorを選択して[Add]ボタンを押下(必要に応じて[Filte...
-ここでは、ファースト・ステップにお似合いのProcessorを追...
--[GetFile Processor]
--[LogAttributes Processor]
***設定する。 [#t385944e]
-Processorをダブルクリック(若しくは、右クリック -> confi...
-[GetFile Processor]の設定を、[Property]タブから行う。
#ref(2-1.png,left,nowrap,手順2-1,60%)
--ポイント
---太字のプロパティは必須のプロパティ
---必須プロパティが構成されるまで、Processorは開始できな...
--設定値
---Input Directory : ./data-in
-[LogAttributes Processor]の設定を、[Settings]タブから行...
#ref(2-2.png,left,nowrap,手順2-2,60%)
--ポイント~
末端のProcessorになるので、FlowFileの処理が完了した場合、~
データを削除することを考慮する必要がある。
--設定値
---Automatically Terminate Relationships : checked to [su...
***使い方を確認する。 [#lc1be49e]
-問題がある場合は、warningマークが表示される。~
ここでは、接続が無いため、warningマークが表示される。
-また、Processorを右クリックし、~
[View usage]を選択すると、Processorのヘルプが表示される。
-次に[[Connectionで接続をする>#zfbd0c39]]。
**Connectionで接続する。 [#zfbd0c39]
***接続する [#q082df56]
Connectionで接続する場合、以下のように操作する。
#ref(3.png,left,nowrap,手順3,60%)
***設定する [#oae98dde]
するとダイアログが表示されるので
-[Settings]タブから設定する。
--Connectionに名前を付ける
[Name] : hogehoge
--Relationshipの設定 : 既定値
--Dataの有効期限とQueueの設定
---[FlowFile Expiration] : 既定値
---[Back Pressure Object Threshold] : 既定値
---[Back Pressure Data Size Threshold] : 既定値
--キューの優先順位の設定~
1つ以上のPrioritizerを設定し、~
1つ目のPrioritizerで優先順位が同じだった場合、~
2つ目のPrioritizerで優先順位が再評価される。
---[Selected Prioritizers] :~
FirstInFirstOutPrioritizer~
OldestFlowFileFirstPrioritizer
-[Detail]タブ
--Relationshipの設定 : 既定値
#ref(4.png,left,nowrap,手順4,60%)
-ここまでの設定で、Processorは停止状態になる。
#ref(5.png,left,nowrap,手順5,60%)
**データフローを実行する。 [#df3ecf76]
***実行 [#h71f1f41]
-ぞれぞれ、Processorを選択してOperatorの再生ボタンを押下...
#ref(6.png,left,nowrap,手順6,60%)
-すると、以下の状態になり、データフローを実行できる。
#ref(7.png,left,nowrap,手順7,60%)
-この状態で、data-inフォルダにファイルを放り込むと確実に...
LogAttribute 1.6.0 の仕様が No description provided. のた...
***修正 [#kc452241]
そこで急遽、PutFileというProcessorを追加・接続して、以下...
-PutFile Processor
--Directory : ./data-out
--[Automatically Terminate Relationships] : checked to [f...
-Connection
--[Name] : hogehoge
#ref(8.png,left,nowrap,手順8,60%)
***確認 [#e75c8ad1]
すると、data-inフォルダに放り込んだファイルがdata-outフォ...
※ 後日談:[[LogAttributeについての仕様を発見した。>Apache...
*分岐、分割・集約辺りの利用 [#wdc4e229]
**分割 [#ff8a41e1]
[[前述の、GetFile - PutFile の例>#kc452241]]にSplitText P...
以下のようなデータフローを定義して分割を評価できる。
***データフロー [#e57d94fe]
#ref(9.png,left,nowrap,手順9,60%)
※ なお、上記のようにConnectionを曲げたい場合は、矢印上で...
***ポイント [#kef4f25b]
-Processor
--SplitText~
Line Split Count : 2
--PutFile
---PutFile(Connection 2-1 に接続)~
Directory : ./data-out1
---PutFile(Connection 2-2 に接続)~
Directory : ./data-out2
-Connection
--[Name] : 2-1~
[Relationship] : original, failure
--[Name] : 2-2~
[Relationship] : splits
***動作確認 [#s921e592]
-Processorを選択していない状態でOperatorの再生ボタンを押...
-data-inフォルダに放り込んだファイルがdata-out1, 2フォル...
--data-out1 : data-inに放り込んだファイル
--data-out2 : SplitTextで抽出した先頭の2行のテキストを含...
**分割・集約 [#g7a357d1]
SplitContent、MergeContent Processorを追加、~
以下のようなデータフローを定義して分割・集約を評価できる。
***データフロー [#f15981c1]
#ref(10.png,left,nowrap,手順10,60%)
***ポイント [#s47620ca]
-Processor
--GetFile~
Directory : ./data-in
--PutFile
---PutFile(Connection 3-1 に接続)~
Directory : ./data-temp
---PutFile(Connection 3-2 に接続)~
Directory : ./data-out
--分割・集約
---SplitContent([;]区切りで分割)~
Byte Sequence : 3B ※ [;]を意味する。~
Automatically Terminate Relationships : original
---UpdateAttribute(ファイル名変更)~
filename : ${UUID()} ※ [+]ボタンでプロパティ追加する。
---MergeContent(統合) : 既定値
-Connection
--[Name] : 2-1~
[Relationship] : splits
--[Name] : 2-2~
[Relationship] : splits
--[Name] : 3-1~
[Relationship] : success
--[Name] : 3-2~
[Relationship] : failure, merged, original
***動作確認 [#recb6dd0]
-Processorを選択していない状態でOperatorの再生ボタンを押...
-data-inフォルダに放り込んだファイルがdata-temp、data-out...
--data-temp
---Byte Sequenceで分割されたファイル
---ファイル名は、UpdateAttributeにより、UUIDに変更される。
--data-out
---分割後、再び集約されたファイル。
---Byte Sequenceで分割後、マージされるため、Byte Sequence...
*変換・処理辺りの利用 [#k205f338]
[[前述の、GetFile - PutFile の例>#kc452241]]にCompressCon...
以下のようなデータフローを定義して変換・処理を評価できる。
**データフロー [#ra3c7765]
#ref(11.png,left,nowrap,手順11,60%)
**ポイント [#v50a9f46]
***Processor [#k53ae6ec]
-GetFile~
Directory : ./data-in
-PutFile
--PutFile(Connection 2 に接続)~
Directory : ./data-temp
--PutFile(Connection 4 に接続)~
Directory : ./data-out
-変換・処理
--CompressContent
---Mode : compress
---Compression Format : gzip
--CompressContent
---Mode : decompress
---Compression Format : gzip
***Connection [#e5a2dda6]
-[Name] : 1~
[Relationship] : success
-[Name] : 2~
[Relationship] : failure, success
-[Name] : 3~
[Relationship] : failure, success
-[Name] : 4~
[Relationship] : failure, success
**動作確認 [#lea084e7]
-Processorを選択していない状態でOperatorの再生ボタンを押...
-data-inフォルダに放り込んだファイルがdata-temp、data-out...
--data-temp~
CompressContent(compress)で圧縮されたデータ・ファイル
--data-out~
CompressContent(decompress)で解凍されたデータ・ファイル
*その他、基本操作 [#edd7e123]
**Processor・Connectionの配置 [#a629c351]
ヘッダのComponentToolBarのProcessor・Connectionアイコンを...
**Connection [#zb806696]
***曲げたい場合 [#xc996b18]
矢印上でダブル・クリックする。
***Queueのクリア [#i211020d]
-Terminateしたフローファイルがキューに詰まることがある。
-この場合、Connectionを右クリックして、Empty Queueする。
**Template [#yfb3fd95]
***セーブ・ロード [#zd947de2]
-セーブ
--OperatorからCreate Templateする。
--ファイルに出力する場合、
---右上メニューからTemplateを選択し、
---Create TemplateをDownloadする。
-ロード
--ファイルから入力する場合、OperatorからUpload Templateす...
--ヘッダのComponentToolBarのTemplateアイコンを方眼紙風の...
***ProcessGroupに格納 [#j7e1785d]
テンプレートを保存する前に、以下の手順を踏む。
-ヘッダのComponentToolBarのProcessGroupアイコンを方眼紙風...
-ProcessGroupに名称を付与し、ProcessGroup上に他のProcesso...
これにより、データフローがProcessGroupとして纏まる。
**サーバーの実行 [#e9288c7d]
・・・
*[[セカンド・ステップ>Apache NiFiセカンド・ステップ]] [#j...
*参考 [#rdf45f1f]
**[[参考資料>Apache NiFi#ce179366]] [#e99bd3ab]
**[[Apache NiFi - Processor]] [#xa8a227f]
ページ名: