2012年に入り日本でもビッグデータを処理するシステム基盤のサポートが整ってきたように見受けられます。具体的なソリューションや設計手法に関する情報も徐々に増えてきました。

ビッグデータでのHadoopの位置づけ

 Apache Hadoopというソフトウエアは「データ処理基盤」と「分散コンピューティング基盤」という2つの特徴を持っています。そこで今回は、ビジネスに生かす手段として活用するための「データ処理基盤」という側面、そしてHadoopを安定稼働させるための「分散コンピューティング基盤」という側面からアーキテクチャーを解説していきましょう。

 第1回で「ビッグデータ」の定義について、あまり厳密に捉えても意味がないとしたうえで、「ビッグデータは企業システムをデータの視点において面で捉え、ビジネスに活用しようという取り組みです」と解説しました。

 実際Hadoopの活用事例には、数千台のサーバーに分散された1ペタバイト規模の情報を処理しているケースもあれば、僅か十数台でビジネスに十分貢献しているケースもあります。

 企業システムを面で捉えていくためには、複数のソースからデータを集約して活用しなければなりません。データ量は必然的に大きくなります。Apache Hadoopではその大量なデータを処理/加工/出力します。まずHadoopでのデータ処理方式についてみていきましょう。

「データ処理基盤」の面から見た特徴

 データ処理という用語も広い意味を持っています。ではApache Hadoopの得意とするデータ処理とはどのようなものなのでしょうか。

 Apache Hadoopはデータ処理の骨格(フレームワーク)にMapReduceを採用しています。このフレームワークがApache Hadoopのサブプロジェクト、Hadoop MapReduceです。今回説明する前提条件を以下に示しておきます。

  • MapReduceアプリケーションはJavaで実装
  • MapとReduceを実行
  • MapReduceではHDFS(Hadoop分散ファイルシステム)を利用

 Apache Hadoopのシステムは、多くの業務システムを支えているトランザクションシステムと比較すると、データの扱い方が特殊です。トランザクションシステムは通常、取引業務に応じた「構造化データ」をため込むデータ蓄積型システムです。文字列、数値、日付などの各種データ型と配列などを組み合わせて、処理を記述します。

 そのデータ処理は、「入力された業務データを加工しデータベースに書き込む」または「データベースから業務データを読み込み加工し表示する」といった業務処理(ビジネスロジック)と、データ管理のためのデータベース操作が主になっています(図1)。

図1●トランザクションシステムでのデータ処理
図1●トランザクションシステムでのデータ処理
[画像のクリックで拡大表示]