VPC環境で利用できます。
NiFiは Dataflowエンジンとして、お互い違うシステム間のデータを処理してリリースする、使用が簡単で安定的なシステムです。NiFiはデータを収集および処理した後、積載するための ETLツールの一種として、分散環境において大量のデータを収集および処理して FBP概念を実現して作ったオープンソースです。
NiFiはリアルタイム処理に非常に適合しており、データ消失なしでデータ送信が可能だというメリットがあります。
NiFiの構成要素
NiFiを構成するコンポーネントは大きく4つで、FlowFile、Processor、Connector、Controllerであり、各要素別の説明は次の通りです。

- FlowFile: NiFiが認識するデータの単位
- Content: データ自体を意味
- Attribute: データ関連情報をキー/値のペアで表現したもの
- Processor: FlowFileを収集、変形、保存する機能
- データ処理を完了した後に新たな FlowFileを作成できる
- Processorは複数個が並列で動作できる
- Connector: Processorと Processorを連携し、FlowFileを転送する機能
- FlowFileの Queueを意味
- 優先順位および backpressureを設定して負荷を調整
- Flow Controller: 各プロセスを連携し、その間を行き来する FlowFileを管理
NiFi を使用する
Local Fileを HDFSに移動させる Data Flowを作成する方法を説明します。ローカルディレクトリに作成したファイルが NiFi Data Flowを通じて HDFSに移動する全手順と手順別の説明は、次の通りです。
1. GetFileプロセッサ作成
2. ローカルファイル作成
3. HDFSプロセッサ作成
4. プロセッサ連携
5. 実行と結果確認
6. トラブルシューティング
1. GetFileプロセッサ作成
NiFiで GetFileプロセッサを作成する方法は、次の通りです。
- マスターノードの /tmpディレクトリに以下のように nifi-testディレクトリを作成します。
mkdir /tmp/nifi-test
chown nifi /tmp/nifi-test
-
NiFi Web GUIのコンポーネントツールバーからプロセッサをドラッグしてキャンバスの上に移動します。

-
NiFi Web GUIで GetFileプロセッサを作成した後に設定します。

-
GetFileプロセッサを右クリックし、 [Configure] ボタンをクリックします。
-
[PROPERTIES] タブをクリックします。
-
Input Directory項目に nifi-testディレクトリの位置を入力し、 [APPLY] ボタンをクリックします。

2. ローカルファイル作成
ローカル環境で任意のファイルを作成する方法は、次の通りです。以下のように viを利用して test1.txtファイルを作成します。
[irteamsu@dev-nch271-ncl nifi-test]$ vi test1.txt
3. HDFSプロセッサ作成
NiFiで HDFSプロセッサを作成する方法は、次の通りです。
- 以下のようにローカル環境にあるデータを保存する HDFSディレクトリを作成します。
sudo -u hdfs hdfs dfs -mkdir -p /user/nifi
sudo -u hdfs hdfs dfs -chown nifi /user/nifi
- NiFi Web GUIで PutHDFSプロセッサを NiFi GUIを通じてキャンバスの上に作成します。
- PutHDFSプロセッサを右クリックし、 [Configure] ボタンをクリックします。
- [PROPERTIES] タブをクリックして以下のようにプロパティを作成します。
- Hadoop Configuration Resources : /etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
- Directory : /user/nifi
- [RELATIONSHIPS] タブをクリックし、failureと successの terminateにすべてチェックを入れます。

4. プロセッサ連携
NiFiで GetFileプロセッサと PutHDFSプロセッサを連携する方法は、次の通りです。
- NiFi Web GUIで GetFileプロセッサにマウスオーバーし、連携アイコンをドラッグして PutHDFSプロセッサに連携します。
- 完成した Data Flowは次の通りです。

5. 実行と結果確認
NiFiで Data Flowを実行してローカル環境で実行結果を確認する方法は、次の通りです。
-
NiFi Web GUIにアクセスします。
-
GetFileプロセッサにカーソルを当てて右クリックし、 [Start] ボタンをクリックします。
-
PutHDFSプロセッサにカーソルを当てて右クリックし、 [Start] ボタンをクリックします。
-
/tmp/nifi-testディレクトリを確認するには、ローカル環境で以下のように入力します。
[irteamsu@dev-nch271-ncl nifi-test]$ pwd /tmp/nifi-test [irteamsu@dev-nch271-ncl nifi-test]$ ls- NiFi Data Flowによりローカル環境のファイルが HDFSに移動され、/tmp/nifi-testディレクトリにファイルが存在しません。
-
HDFSに移動したファイルを確認するにはローカル環境で以下のように入力します。
[irteamsu@dev-nch271-ncl nifi-test]$ sudo -u hdfs hdfs dfs -ls /user/nifi Found 1 items -rw-r--r-- 2 nifi hdfs 4 2023-08-29 17:33 /user/nifi/test1.txt [irteamsu@dev-nch271-ncl nifi-test]$ sudo -u hdfs hdfs dfs -cat /user/nifi/test1.txt- NiFi Data Flowを通じてローカル環境のファイルが HDFSに移動しました。
ローカル環境の /tmp/nifi-testディレクトリ内にファイルが作成されると、そのファイルは自動的に HDFSに移動され、ローカル環境のファイルは削除されます。
6. トラブルシューティング
Data Flowに問題が生じた時は Data Provenanceを確認して問題を解決できます。Data Provenanceを確認する方法は、次の通りです。
- NiFi Web GUIで確認するプロセッサにカーソルを当てて右クリックします。
- [View data provenance] ボタンをクリックします。
- 以下のように Data Provenance情報を確認します。

