前々回、前回のブログで、 AWS 上で生成されたデータを、 AWS S3 にストアしながら、 GCP GCS にもデータを流して、ストアする方法を書きました。
今回は、Azure 上で生成されたデータを、 Azure Blob Storage にストアしながら、 GCP GCS にもデータを流してストアする方法を書きます。 GCP GCS をデータレイクにして、 Google BigQuery などで分析を行うことを想定しています。
Azure での作業
- Azure 上で仮想マシンを作成
sudo yum -y update
sudo yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
sudo sh -c "echo 'export JAVA_HOME=/usr/lib/jvm/jre-openjdk' >> /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
- port 8080 をオープン
-
http://[ipaddress]:8080/nifi
にアクセスし、正常に NiFi の UI が表示されるか確認 -
NiFi の PutAzureBlobStorage Processor を作成し、Property タブで、下記を入力
GenerateFlowFile を作成し、GenerateFlowFIle と PutAzureBlobStorage 接続し、両 Processor を実行
Blob で、ファイルが作成されていることを確認
GCP での作業
- GCP 上にインストールした、 NiFi
http://[ipaddress]:8080/nifi
にアクセス - Input Port を作成
- Input Port Name : Azure
PutGCSObject を作成
Apache NiFi と Google Cloud Storage の連携 を参考Input Port と PutGCSObject を接続し、両 Processor を実行
Azure での作業
- Azure 上にインストールした、 NiFi
http://[ipaddress]:8080/nifi
にアクセス -
Remote Process Group を作成
GenerateFlowFile と Remote Process Group を接続し、To Input で Azure を選択
Remote Process Group を右クリック、Enable Transmission をクリックし、Remote Process Group を有効に
AWS S3 にデータを蓄積しながら、Google Cloud Storage にもデータを蓄積する を参考GCS でファイルが作成されていることを確認
以上