Hadoop

読み方 : はどぅーぷ

英語正式表記 : Hadoop

Hadoopとは

大量のデータを複数のコンピュータで分散処理するためのプラットフォームを構築するオープンソース・ソフト。米Googleが独自開発した分散処理システムがベースになっている。米Googleが学術論文に公開した一部仕様を元にして、米Yahoo!社のDoug Cutting氏(現在は米Clouderaに在籍)が中心となって開発が始まった。同社の検索サービスのプラットフォームにも利用されている。現在はApache Hadoopプロジェクトが開発を進めている。

Hadoopは、分散ファイル・システムである「Hadoop Distributed File System」(HDFS)、分散処理を担う「Hadoop MapReduce」、データベース基盤となる「hBase」で構成している。Javaのフレームワークとして実装されており、基本的にJavaでプログラミングしている。「Hadoop Streaming」と呼ぶ拡張ライブラリを使うと、MapReduceの処理をC/C++、Ruby、Pythonなどでプログラミングすることができる。

Hadoopを構成する三つのシステムのうち、中核となるのが分散処理を実行するMapReduceである。MapReduceの処理は、入力されたデータから最終的な結果を得るのに必要な情報を抽出する「Map」、抽出したデータを結合して並び替える「Shuffle」、並び替えたデータをまとめて結果を出力する「Reduce」という三つの手順で構成している。

Hadoopでは、データを「キー」と「バリュー」の組み合わせで管理している。テーブル単位で管理するリレーショナル・データベース(RDB)に比べて非常にシンプルな構造になっている。大量のデータを一括して変換するバッチ処理を得意とし、RDBのような特定の条件で絞り込むといった処理には向かない。分散処理という特徴もあって、スケールアップによる性能向上が可能な点も、RDBとの大きな違いだ。

出典:ITpro「今日のキーワード」(C)日経BP社

[2010年 3月15日 公開]

お役立ち情報満載!「資料ダウンロードまとめサイト」のご案内