NTTとプリファードインフラストラクチャー(PFI)は10月26日、ビッグデータをリアルタイムに高速分析処理する基盤技術「Jubatus(ユバタス)」を開発したことを発表した。10月27日からOSSとしてhttp://jubat.us/で公開する。
Jubatusはビッグデータを“常に素早く、深く解析”することを狙った大規模分散リアルタイム解析フレームワーク。常に素早く処理するために、データを複数のサーバに振り分けて並列かつ逐次的に処理させる。深く解析するために、複数のサーバがお互いの途中処理結果を共有する仕組みが必要になる。
共有するために、サーバ間通信によるボトルネックの発生リスクが伴うため、通信方法を工夫しないとトータルでの性能が低下することになる。Jubatusでは、複数のサーバ間で緩やかに途中処理結果を共有することで、サーバ間の通信オーバーヘッドの削減や安定性の向上を実現し、高いリアルタイム性と解析精度を確保したという。
※クリックすると拡大画像が見られます
Jubatusの技術的特徴は(1)MIX処理方式(2)プラガブル構成(3)ワークフロー化――という3つ。(1)のMIX処理は、MIX計算、MIXプロトコル、メンバシップ管理の3つの機能から構成される処理方式。
MIX計算は、データ解析処理のロジックに応じて、集約計算ロジックをアレンジする機能。MIXプロトコルは、サーバ間で途中の解析結果を答え合わせする際のデータの集め方と再分配のやり方を決める機能。メンバシップ管理は、絶え間なくデータを処理するため、サーバ障害をリカバリしたり、データがあふれる前にサーバを追加したり、リーダーを決めたりする機能になる。
同時並列で解析しても、全サーバが毎回待ち合わせて中間結果を集約することはボトルネックになる。そこで、毎回ではなく適度な間隔でほかのサーバと中間結果を交換して、平準化することで、各サーバはなるべくブレーキをかけずに自律的に走ることができる。アプリケーション要件が許容できる範囲で集約結果の精度と厳密性を緩めるように、リアルタイム性とスケーラビリティの両立を調整するとしている。
※クリックすると拡大画像が見られます
(2)のプラガブル構成は、共通インターフェース規定で解析エンジンや解析モジュール、データストレージ方式(ローカルか分散か)の柔軟な組み替え(プラグイン・アウト)できるという仕組み。(3)のワークフロー化は、データ入力から応用解析処理、解析エンジンなどのプロセス構成間のパスと並列処理実行などの定義と実行制御が可能になるというものだ。
Jubatusの名称はネコ科動物のチーターの学術名「Acinonyx jubatus」に由来している。ビッグデータの分析では、データをいったん蓄積して、一定期間分をまとめて高速に処理するバッチ処理が一般的であり、Hadoopに対する注目が集まり、利用実績も増えている。
NTTとPFIは、社会のスピードは速く、SNS分析や異常トラフィック検知、不正アクセス検知などのアプリケーション領域で高度な解析や予測に基づく迅速な意思決定を実現するためには、時系列で流れ込んでくるデータを、蓄積せずにリアルタイムに高度解析する技術が必要と、Jubatus開発の背景を説明している。