LoginSignup
2
3

More than 3 years have passed since last update.

Apache NiFi の(とても)基本的な設計手順

Last updated at Posted at 2018-10-07

この記事は?

Apache NiFi と呼ばれるデータフローオーケストレーションツールについて、詳細は置いていてとりあえずエラーを出さずに試験的に設計をするところまでをまとめたものです。
NiFi の記事自体は少ないですが、基本的な知識は割と投稿されているので場合によっては他の記事等を見てみたほうが良いかもです。というわけで本記事は備忘録的な位置づけとなります(便利な言葉「備忘録」)

以下 Apache NiFi について解説している記事です。
データフローオーケストレーションツールApache NiFiとは?
NiFi について解説している記事です。
@kimutansk さんは他にもいくつかの NiFi に関する記事を書いているので他の記事も参照してみると良いです。
投稿は 2015 年と少し古いですが、基本的な知識が多いですので現在とのギャップ等はなく参考にできると思います。

Apache NiFiについて調べてみた
インストールから設計まで丁寧にスクショを用いて解説している記事です。
ぶっちゃけこの記事読めば本記事いらないんじゃ(ry

設計手順

流れとしては以下のようになります。
1. Processor(プロセッサ)を設置する。
2. Processor が必要とする接続先を用意する。
3. 締めとなる Processor を用意する(もしくは設定する)

一応既存の記事とは少し見方を変えた解説をしていこうと思います。

Processor(プロセッサ)を設置する。

そもそも Processor とはなんぞや、というところですが要は関数のようなものと思っていただいて良いと思います。それぞれの Processor は違う処理を持っていて、したいことに合わせてこれをセットしていくことになります。それぞれの詳細については公式のドキュメントを参照していただけると良いと思います。
Apache NiFi Document

まずは画面を確認してみましょう。
スクリーンショット 2018-10-07 21.31.41.png
左上に表示が出ているのが Processor となります。
こちらをドラッグ&ドロップすることにより以下の画面が表示されます。
スクリーンショット 2018-10-07 21.33.51.png
画面中央に写っているものが各種 Processor となります。
右上のフィルタから検索をかけることも可能です。
とりあえず適当なものを置いてみましょう。
スクリーンショット 2018-10-07 21.43.38.png
はい、これで設置完了です。
今度はこれらを接続していきます。

Processor が必要とする接続先を用意する。

接続の仕方はカーソルを Processor の上に置くと以下のようなマークが表示されるのでそれを別の Processor にドラッグ&ドロップしてあげるだけです。
スクリーンショット 2018-10-07 21.49.16.png
すると以下の画面が表示されます。
スクリーンショット 2018-10-07 21.52.58.png
画面中央のチェックボックスに何かしら入ってないと ADD ボタンが押せないようですのでとりあえず Success のみチェックして ADD を押してみます。
スクリーンショット 2018-10-07 21.54.34.png
するとこんなふうに Processor 同士が接続されます。ちゃんとチェックを入れたもので繋がれていますね。
ただここで気になるのは[黄色い!マーク]。実はこの状態だと動かすことができません。
一番上の Processor の場合いくつかの理由があるのですが今回は置いておいて、今度は試しに中央の LogAttribute から接続線を引いてみましょう。
スクリーンショット 2018-10-07 22.03.44.png
おや、先程と違って中央のチェックボックスが一つしかありませんね。
とりあえずこのまま ADD してみましょう。
スクリーンショット 2018-10-07 22.05.07.png
先ほどと違って停止マークが表示されていますね。これは待機状態で、正しく接続がされている状態であることを示しています。

では先程と何が違うのか。それは接続時に設定されるチェックボックスに理由があります。
試しにもう一つ Processor を置いて接続してみましょう。
スクリーンショット 2018-10-07 22.10.02.png
今度の Processor はチェックボックスが二つですね。今回は二つとも選択して ADD してみましょう。
スクリーンショット 2018-10-07 22.12.01.png
お、今度は大丈夫そうですね。もうおわかりかと思います。

先程からチェックボックスがーと言っているものは Relationship と呼び、必ず設定されなけれればならない項目です。これを設定しないと一向にエラー(!マーク)は消えません。RelationshipProcessor ごとにいくつかの種類があり、適切なものが用意されています。例えばわかりやすいのは二つ前の画像ですが、SuccessFailure があるので「成功時と失敗時の処理を用意する必要がある」ってことですね。

もちろん前述したとおり、各 Processor は独自の処理を持っており、上記の通り Relationship を設定したとしても他に必要な要素があることもあるため注意が必要です(ExecuteGroovyScript なんかは実はこっそり他に設定をしています)

締めとなる Processor を用意する(もしくは設定する)

前項で Relationship を設定する必要があることは理解いただけたと思います。
そこで自然と行き着く考えは、「じゃあ終わらせたい時どうするの?」だと思います。
大丈夫です、もちろんそうした設定も存在します。以下を御覧ください。
スクリーンショット 2018-10-07 22.25.08.png
先程末尾にあり、エラー状態となっていた Processor をダブルクリック(もしくは右クリ→Configure)すると表示される画面です。この右側に見覚えのある文字がありませんか?
もうおわかりですね。チェックして APPLY してみましょう。
スクリーンショット 2018-10-07 22.28.14.png
はい、ということで先程の設定をすることで接続先を用意しなくても良いと捉えてくれるのでエラーが消えるわけです。これでエラーを出さずに動かすことができますね。

他注意点

ここまで読んでいただけばわかると思いますが、投稿主は英語がまっったくできません。というか他の記事見ていただける通り新人も新人でして、簡単な単語の羅列を見ても経験が浅いこともあり何を言っているのかチンプンカンプンです(NiFi Document のリンクとかも貼ったけど日本語訳して読んでもわけわからん)
ということで NiFi 使用時、甘えて chrome の翻訳機能を使って操作していたのですが…
スクリーンショット 2018-10-07 22.36.31.png
画面下の状態おかしいですよね?
実はこれ日本語訳済みの状態で接続を行ったあとの状態なのですが、仕組みはわかりませんがシステムが日本語状態の項目のチェックを無効化しているのかなんかで、設定されている判定になっていないようなんです。
ちなみに他の設定項目などでもそうで、別タブなどが開かれるときは正しく表示がされなかったり…。
私のような英語のできない方はお気をつけください。

終わりに

「いやわっけわっかんねー」と脳内でつぶやきながら動かしております。少しずつやらなければならないことがわかってきて、多少なりとも前には進めているのですが経験のナッシングな新人にはフローチャート作成ツールの使い方の想像もできないですし、何より日本語訳のドキュメントが無さすぎて正直不安しかありません。
なので少しでもあとから続く方のためにと記事を投稿した次第です。
実際のところめちゃくちゃ素人向けの記事ではありますがそこはあくまで「備忘録」ということでご勘弁を(どっちだよ)
以上になります、ご覧頂きありがとうございました。

2
3
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
2
3