- 印刷する
- PDF
NiFi を使用する
- 印刷する
- PDF
Classic環境で利用できます。
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
- 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/test/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 root 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情報を確認できます。