HadoopDB 
このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをはてなブックマークに追加このエントリをBuzzurl(バザール)に追加このエントリをLivedoor Clipに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをnewsingに追加

2009.7.24 金曜日 - 02:59 silicon_soul コメントをどうぞ コメント
HadoopDB

HadoopDB


オレンジニュースさんでHadoopとRDBMSのそれぞれの特性をあわせた「HadoopDB」というProductが紹介されていました。

開発者によるリリースノートはこちらです。

    Announcing release of HadoopDB (longer version)

 
 
 

HadoopDBの特徴は

1. DBMSとMapReduceのハイブリッドで、分析作業を対象にしている
2. 一般的なサーバで構築された、(メモリとかDiskとかの)共有無しのクラスタまたはクラウド上で動作するようデザインされている
3. フリー・オープンソース並列DBのマーケットのギャップを埋めることを意図している
4. 既存の並列DBシステムやDBMS/MapReduceハイブリッドシステムよりスケーラブル
5. Hadoopと同様のスケーラビリティで、構造化データ分析作業において、優れたパフォーマンスを発揮する。

といったところのようです。
 

 ちょうど今、仕事のデータ分析をHadoopと並列DB(某社のDWH製品)両方使って行っています。
 
 構造化されているdata sourceを使った分析は並列DBを使い、大量のraw dataを解析する場合にはHadoopクラスタと使い分けています。並列DBはSQLで記述でき、比較的高速に動いてくれるので便利ではありますが、DBに入っていないraw data処理では、自由に記述できて大量データを高速に捌けるHadoopが便利です。

 HadoopDBの目指しているのがDBMSとMapReduceのハイブリッドプロダクトとのことですし、Hadoop(HDFS)に入っているデータをより簡単に扱う仕組みとしてはPigHiveがすでにあり、それらのプロダクトとの違いなど気になるところが多いです。

 そのようなわけで、HadoopDBのHPに掲載されている論文をPrintして帰りの電車の中で読んでいました。
 

 
 
 
半分くらい目を通したので、忘れないようメモにまとめます。
 
 

 


■概要
 
 HadoopDBは、Hadoopをタスクコーディネーションとネットワークの道具として使い、単一ノードのDBMSを複数結合するというコンセプトでできています。(HadoopDBで実行される)クエリはMapReduceフレームワークを使うことでノードを超えて並列化されます。HadoopDBは、Hadoopのスケジューリング、ジョブトラッキングを利用しているので、耐障害性、ヘテロジニアス環境での運用を可能としてます。
※実運用上、同一のHWでクラスタを組むことになるでしょうから、ヘテロジニアス環境で運用できるというアドバンテージはあまり感じません。。。

The basic idea behind HadoopDB is to connect multiple singlenode database systems using Hadoop as the task coordinator and network communication layer. Queries are parallelized across nodes using the MapReduce framework; however, as much of the single node query work as possible is pushed inside of the corresponding node databases. HadoopDB achieves fault tolerance and the ability to operate in heterogeneous environments by inheriting the scheduling and job tracking implementation from Hadoop, yet it achieves the performance of parallel databases by doing much of the query processing inside of the database engine.

 
 
■関連プロダクトとの違いについて
 
 PigやHiveとの違いは、まずそれらが(データ操作のための)言語やインタフェースの問題にフォーカスされているのに対して、HadoopDBはシステムレベルでの結合を目指しているところとあります。
 

2. RELATED WORK

There has been some recent work on bringing together ideas from MapReduce and database systems; however, this work focuses mainly on language and interface issues. The Pig project at Yahoo , the SCOPE project at Microsoft , and the open source Hive project aim to integrate declarative query constructs from the database community into MapReduce-like software to allow greater data independence, code reusability, and automatic query optimization.
Greenplum and Aster Data have added the ability to write MapReduce functions (instead of, or in addition to, SQL) over data stored in their parallel database products .
Although these five projects are without question an important step in the hybrid direction, there remains a need for a hybrid solution at the systems level in addition to at the language and interface levels. This paper focuses on such a systems-level hybrid.

 
 
■アーキテクチャについて
 以下は、明日postします。

 The Architecture of HadoopDB

The Architecture of HadoopDB

▼Database Connector
▼Catalog
▼Data Loader
▼SQL to MapReduce to SQL (SMS) Planner

(a) MapReduce job generated by Hive (b)  MapReduce job generated by SMS assuming sales is partitioned  by YEAR(saleDate). This feature is still unsupported  (c) MapReduce job generated by SMS assuming  no partitioning of sales

(a) MapReduce job generated by Hive (b) MapReduce job generated by SMS assuming sales is partitioned by YEAR(saleDate). This feature is still unsupported (c) MapReduce job generated by SMS assuming no partitioning of sales