FlashBlade でシンプルに!ビッグデータ& AI ー リアルタイムなデータ取得とデータ処理

前回のブログでは、「愛犬家のための画像認識 AI」を例に取り、FlashBlade で構築するデータハブによってビッグデータ分析と AI をシンプルにするメリットをご紹介しました。今回は、コードサンプルと UI 画面のスクリーンショットを交え、FlashBlade によっていかに簡単に AI パイプラインを構築できるかをご説明します。

FlashBlade パフォーマンス分析 UI

前回のブログでは、「愛犬家のための画像認識 AI」を例に取り、FlashBlade で構築するデータハブによってビッグデータ分析と AI をシンプルにするメリットをご紹介しました。今回は、コードサンプルと UI 画面のスクリーンショットを交え、FlashBlade によっていかに簡単に AI パイプラインを構築できるかをご説明します。

AI パイプラインを構築するための環境設定

このアーキテクチャでは、オープンソースのソフトウェアを活用しています。データの取得とデータフロー管理には Apache Nifi、リアルタイムのインデックス作成とダッシュボード作成には Apache Solr を使用します。Apache Spark は、ビッグデータ処理に最適なツールです。以下に示すように、これらのソフトウェアは全て Apache Ambari によって展開、管理されています。

Apache Ambari ダッシュボード
図 1:Ambari ダッシュボード

また、AI モデルのトレーニングには TensorFlow を使用し、AI モデルは Python サーバーの REST API として展開します。

私のデモ環境では、全てのソフトウェアが FlashArray 上の仮想マシンにインストールされ、実行されています。これらは、ベアメタルサーバーのクラスタでも実行できます。ツイートのローデータ、インデックスファイル、犬の画像、AI モデルなど、全てのデータが FlashBlade(FlashBlade S3 バケットまたは NFS ボリューム)に格納されています。

リアルタイムなデータ取得とデータ処理

AI と深層学習にはデータが不可欠です。 ビッグデータがなければ、AI はそれほど賢くもなく便利でもありません。

まず、NiFi を使用してリアルタイムにツイートを取得することから始めます。NiFi でのデータフロー管理は、次のようになります。

Apache NiFi データフロー
図 2:NiFi データフロー

UI の各ボックスはプロセッサと呼ばれています。各プロセッサは、フロー内で簡単なジョブを実行します。NiFi は何百もの内蔵プロセッサを持っており、使いやすく強力です。プロセッサをドラッグアンドドロップで設定して接続するだけで、複雑なデータフローが形成されます。

上記フローの上位 3 プロセッサについては、Twitter API を呼び出して犬に関するツイートを収集するように NiFi を設定します。そして、Twitter の応答からリアルタイムダッシュボードに必要なフィールドを抽出し、そのフィールドを Solr に送信してリアルタイムインデックスを作成します。GetTwitter プロセッサ構成の例を以下に示します。

Apache NiFi GetTwitterの構成
図 3:NiFi GetTwitter の構成

NiFi フローを開始して数秒後には、愛犬家のツイートがリアルタイムに取り込まれ、インデックスが作成されてシステムに保存されます。データは Solr 内でインデックス付けされているため、Solr の Banana UI から、数回のクリックで簡単に以下のようなリアルタイムダッシュボードを作成できます。

Apache Solr リアルタイムダッシュボード
図 4:Solr リアルタイムダッシュボード

上図の例では、データのヒストグラム、ツイート数の多い人、使用言語、ツイートの内容を表示しています。Nifi と Solr は、どちらも FlashBlade NFS ボリュームをマウントしてデータを保存します。これは、Nifi と Solr の構成を変更することにより可能になります。以下のように、データディレクトリのマウントポイントを FlashBlade NFS に変更します。

nifi.propertiesファイル:

solr.in.shファイル:

FlashBlade ダッシュボードにアクセスすると、これらのデータによって生成されたトラフィックが表示されます。

FlashBlade パフォーマンス分析 UI
図 5:FlashBlade パフォーマンス分析 UI

次回予告

AI の構築において非常に重要なのが、データの調査とクレンジングを行い、AI モデルのトレーニングと検証に備えることです。

次回は、FlashBlade S3、Spark、Zeppelin を使用したパイプラインのビッグデータ分析について説明します。

注:本ブログは、蒋 逸峰が Medium に投稿した記事「AI for Dog Lovers: An End to End AI Pipeline with FlashBlade — Part 1」の一部を日本語訳、再編したものです。

シリーズ「FlashBlade でシンプルに!ビッグデータ& AI」

FlashBlade でシンプルに!ビッグデータ& AI 第 1 回