これからは、コレ!旬なIT技術やこれから主流となりつつあるIT技術に関する情報をご紹介します。

2011年03月01日

大規模データを効率良く活用!
分散処理技術

分散処理技術利用による大規模データ処理

2009年頃からクラウドの実用化とともに注目を集める技術に分散処理技術があります。分散処理技術とは、大規模データを複数のサーバ上に分散して処理することができる技術のことであり、「Apache Hadoop」に代表される分散処理技術を容易に実現するためのいくつかのソフトウェアと合わせて話題となりました。
分散処理技術が注目を集めた背景としては、世界中で生成されるデータの爆発的な増加にあります。例えば自社でWebサイトを公開している場合は、訪問者の行動分析を行うために、訪問者ごとにアクセス日時や回数、滞在時間、最初に見たページなどをアクセスログとして取得しています。この取得したアクセスログは、その内容を分析・加工することで、ユーザが何に興味を示しているのかという傾向を把握することができ、企業の意思決定の材料として役立ちます。
しかし、このような日々増加する類のデータの処理は、データの増加が原因でいずれそれを処理するサーバのキャパシティーをオーバーし、パフォーマンスに問題を抱えることになります。その結果、必要な情報を必要な時に取得することができなくなり、ビジネスチャンスを逃してしまう可能性があります。このような問題を解決する一つの手段が分散処理技術です。

img_bunsan01.jpg

図1:アクセス解析における分散処理イメージ


※並列処理をしているサーバの台数に反比例して処理時間は短くなります。
上の例では、3台のサーバで並列処理しているため、一括処理に比べて処理時間は約3分の1になります。

Apache Hadoopに代表される分散処理技術とは

分散処理を実現する代表的なソフトウェアの一つであるApache Hadoopは、大規模データを複数のサーバで容易に分散処理するためのオープンソースソフトウェアで、Apache Software Foundationというコミュニティによって開発されています。このソフトウェアは、以下の1.?3.のような機能を持つことで分散処理を実現します。

1. インプットされた大規模なデータを小さく分割する
2. 分割したそれぞれのデータを各サーバ上で処理する
3. 各サーバの処理結果を集約してアウトプットとして返す

このソフトウェアを利用することで、データが複数のサーバ上で同時並行的に処理され、結果としてトータルの処理時間を短縮することが可能となります。また、処理中のサーバのいずれかに障害が発生した場合でも、自動的に別のサーバに処理を割り振るという耐障害性の機能も備えています。
分散処理技術は必ずしもクラウド上で利用する必要はありませんが、例えばクラウド・サービス(注1)を利用すれば、処理の負荷状況に合わせてサーバを増減させることができ、自社内に何十台ものサーバを用意するより容易に利用できます(図2参照)。またクラウド・サービス利用の場合、コストが発生するのは処理を行っている間のみであることもメリットです。

img_bunsan02.jpg

図2:クラウド上での分散処理技術の利用

(注1)クラウド・サービスは、以下をご参照下さい。
『クラウド上で発展する様々なサービス「SaaS・PaaS・IaaS」』
https://www.kobelcosys.co.jp/column/itwords/26/

分散処理技術の現在とこれからの利用用途

分散処理技術は、大規模データの処理を高速化できることから注目を集めており、現時点では以下のような時間を要する処理での利用が考えられます。

<分散処理技術の利用用途>

  • アクセス解析
  • Webサイトのクローリング
  • 検索インデックスの作成
  • 製品ランキングのデータ集計

また、ベンダーが提供している業務系の各種ソフトウェアパッケージに、分散処理技術を組み込むことでパフォーマンスの向上を図るという取り組みも始まっています。これにより、クラウド上での利用技術として注目を集める分散処理技術が、企業内のシステムで利用される日も遠い未来ではないのかもしれません。大規模データのスピーディな処理と活用を可能にする、分散処理技術に注目してみてはいかがでしょうか。

2011年3月

ITの可能性が満載のメルマガを、お客様への想いと共にお届けします!

Kobelco Systems Letter を購読