Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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 まで。

以上

kkitase
Google Cloud 所属 | GCP | Data | ML | Kubernetes | OSS | 銭湯 | バスケ | ex-Hortonworks | ex-IBM | ex-Citrix | 発言は個人の意見であり、所属組織とは無関係です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away