Apache NiFi を使って Google Cloud Storage にデータを蓄積しよう

Google Cloud Dataflow は、 ETL などのデータ処理を行い、GCP のマネージドサービス間のデータのフローを構成するサービスです。今回は、NiFi で生成したデータを、Google Cloud Storage (GCS) に書き込むフローを試してみました。

  • GCE 上にインスタンスを作成
マシンタイプ: n1-standard-4
HTTP/HTTPS トラフィックを許可する
ネットワークタグ: nifi
  • ファイアウォールの設定
    NiFi はデフォルト 8080 番ポートを利用するので、ポートをオープンにします
    ss 2018-03-25 0.40.21.png

  • GCS 用のサービスアカウントキーを作成

    • API とサービスの認証情報から、認証情報を作成をクリック ss 2018-03-24 12.38.15.png
    • 任意のサービスアカウント名を入力 ss 2018-03-24 12.40.51.png
  • Java, NiFi のインストール、起動
    作成した インスタンス に ssh 接続し、下記の要領でインストール、起動します

sudo apt-get update
sudo apt-get -y install openjdk-8-jdk
sudo sh -c "echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> /etc/profile.d/jdk.sh"
sudo sh -c "echo 'export PATH=\$JAVA_HOME/bin:\$PATH' >> /etc/profile.d/jdk.sh"
source /etc/profile.d/jdk.sh
wget https://archive.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz
tar zxvf nifi-1.4.0-bin.tar.gz
cd nifi-1.4.0/bin
./nifi.sh start
  • Apache NiFi の UI にアクセス
    http://[ipaddress]:8080/nifi にアクセス
    ss 2018-03-24 23.53.15.png

  • フローの作成
    NiFi では下記のように Processor と呼ばれる箱を組み合わせてフローを定義していくが、今回は、 GenerateFlowFile と、 PutOCSObject を使用してみます。
    ss 2018-03-24 23.56.19.png

  • PutOCSObject をダブルクリックし、 GCS に データを書き込む為に、下記を設定を変更する

GCP Credentials Provider Service : 
Project ID : <GCP のプロジェクトID>
Bucket : <GCS のバケット>

ss 2018-03-24 12.13.19.png

  • GCP Credentials Provider Service の設定
    PutOCSObject Processor をダブルクリックし、GCP Credentials Provider Service の右に矢印をクリックして、歯車マークをクリック
    ss 2018-03-24 12.13.54.png

  • Properties タブをクリックし、Service Account JSON に、作成したキー (JSON 形式) をペースト
    ss 2018-03-24 12.13.42.png

  • PutOCSObject Processor をダブルクリックし、GCP Credentials Provider Service の右に矢印をクリックして、雷マークをクリックし、Enable 状態にします
    ss 2018-03-24 12.13.54.png

  • 全ての Processor を実行して、GCS にデータが書き込まれていることを確認
    ss 2018-03-24 12.17.44.png

Apache NiFi には、GCP のマネージドサービス用の Processor がまだまだ少ないので、(というか、GCS関連しかない)この辺りが充実されれば、色々展開できると思われます。

少し、はしょって書いているので、不明な点があれば、 @kkitase まで。

以上

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.