データベースとHadoopの連携

EnterpriseZine / 2012年4月26日 0時0分

近年、大規模データ処理の新たな潮流として話題になることの多い分散処理プラットフォームHadoopですが、企業の中でどのようにHadoopを活用し、既存システムとの連携を考えるかということが大きな検討のテーマになってきています。HadoopはこれまでのRDB中心のデータ処理基盤とは異なるアプローチのシステムですが、両者を補完的に組み合わせることで、これまでは不可能であった大規模かつ柔軟なデータ活用の道が開けます。今回はGreenplum DBのHadoopとの連携機能をデータベース/Hadoopのアーキテクチャや用途の違いの観点を含めて解説します。

■データベースとHadoopの連携 Hadoopのしくみとデータベースシステムとの対比

 HadoopはGoogleの分散処理基盤システムを紹介した論文をもとに、Apacheコミュニティにて開発されたオープンソースの分散処理システムです。分散処理環境の構築に汎用ハードウェアを活用し、MapReduceと呼ばれる比較的シンプルな分散処理フレームワークを導入することにより、これまでは困難であった分散処理アプリケーション構築のハードルを大きく下げ、大規模データ処理の基盤として活用する事例も増えてきています。

 Hadoopのコアの部分は、Hadoop Distributed File System (HDFS) という分散ファイルシステムと、MapReduce分散処理フレームワークが密接に組み合わされて構成されています。Hadoopでデータを処理する場合には、まずデータはファイルとしてHDFS上に格納されますが、HDFSはデータを固定長のブロックに分割した上で複数のノードに分散して配置します。そしてHadoopジョブの実体であるJavaで記述されたMapReduceプログラムが各ノードに送られ、各ノードに配置されたデータブロックを入力として並列に処理を行います。

 ところでこのようなHadoopの処理のしくみを読んで、HadoopとGreenplum DBは結構似ているのではないかと思われる方がいるかもしれません。実際、汎用ハードウェアやLinuxをベースにスケールアウト型の処理基盤を構築する点や、データを完全分散するシェアードナッシング型のアーキテクチャに基づいている点、バッチ系の処理に大きな効果がある点などは共通しています。その意味で、両者ともビッグデータ時代の大規模データ処理基盤にふさわしい技術をベースにしていると言えます。

  • 前のページ
    • 1
    • 2
  • 次のページ
EnterpriseZine

トピックスRSS

ランキング