NiFi を使用する
    • PDF

    NiFi を使用する

    • PDF

    Article Summary

    Classic環境で利用できます。

    NiFiは Dataflowエンジンとして、お互い違うシステム間のデータを処理してリリースする、使用が簡単で安定的なシステムです。NiFiはデータを収集および処理した後、積載するための ETLツールの一種として、分散環境において大量のデータを収集および処理して FBP概念を実現して作ったオープンソースです。
    NiFiはリアルタイム処理に非常に適合しており、データ消失なしでデータ送信が可能だというメリットがあります。

    NiFiの構成要素

    NiFiを構成するコンポーネントは大きく4つで、FlowFile、Processor、Connector、Controllerであり、各要素別の説明は次のとおりです。
    chadoop-nifi-1-1_ko

    • 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プロセッサを作成する方法は、次のとおりです。

    1. ローカル環境の/tmpディレクトリで以下のように nifi-testディレクトリを作成します。
    mkdir /tmp/nifi-test
    chown nifi /tmp/nifi-test
    
    1. NiFi Web GUIのコンポーネントツールバーからプロセッサをドラッグしてキャンバスの上に移動します。
      chadoop-nifi-1-2-3_ko
    2. NiFi Web GUIで GetFileプロセッサを作成した後に設定します。
      chadoop-nifi-1-2-4_ko
    3. GetFileプロセッサを右クリックし、 [Configure] ボタンをクリックします。
    4. [PROPERTIES] タブをクリックします。
    5. Input Directory項目に nifi-testディレクトリの位置を入力し、 [APPLY] ボタンをクリックします。
      chadoop-nifi-1-2_ko

    2. ローカルファイルの作成

    ローカル環境で任意のファイルを作成する方法は、次のとおりです。以下のように viを利用して test1.txtファイルを作成します。

    [irteamsu@dev-nch271-ncl nifi-test]$ vi test1.txt
    

    3. HDFSプロセッサの作成

    NiFiで HDFSプロセッサを作成する方法は、次のとおりです。

    1. 以下のようにローカル環境にあるデータを保存する HDFSディレクトリを作成します。
    sudo -u hdfs hdfs dfs -mkdir -p /user/nifi
    
    1. NiFi Web GUIで PutHDFSプロセッサを NiFi GUIを通じてキャンバスの上に作成します。
    2. PutHDFSプロセッサを右クリックし、 [Configure] ボタンをクリックします。
    3. [PROPERTIES] タブをクリックして以下のようにプロパティを作成します。
    • Hadoop Configuration Resources : /etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
    • Directory : /user/test/nifi
    1. [RELATIONSHIPS] タブをクリックし、failuresuccessterminate にすべてチェックを入れます。
      chadoop-nifi-3

    4. プロセッサの接続

    NiFiで GetFileプロセッサと PutHDFSプロセッサを接続する方法は、次のとおりです。

    1. NiFi Web GUIで GetFileプロセッサにマウスオーバーし、接続アイコンをドラッグして PutHDFSプロセッサに接続します。
    2. 完成した Data Flowは次のとおりです。
      chadoop-nifi-1-3_ko

    5. 実行と結果確認

    NiFiで Data Flowを実行してローカル環境で実行結果を確認する方法は、次のとおりです。

    1. NiFi Web GUIにアクセスします。

    2. GetFileプロセッサにカーソルを当てて右クリックし、 [Start] ボタンをクリックします。

    3. PutHDFSプロセッサにカーソルを当てて右クリックし、 [Start] ボタンをクリックします。

    4. /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ディレクトリにはファイルが存在しません。
    5. 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を確認する方法は、次のとおりです。

    1. NiFi Web GUIで確認するプロセッサにカーソルを当てて右クリックします。
    2. View data provenance ボタンをクリックします。
    3. 以下のように Data Provenance情報を確認できます。
      chadoop-nifi-1-4_ko

    chadoop-nifi-1-5_ko


    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.