注目の書籍

好評発売中!

知識ゼロから始めるLinuxサーバーの作り方

Linux初心者でも
本格 サーバーが“即席”で 完成!自宅サーバー
クラウド化も!

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

オープンソース/Linux

Linuxキーワード

日経Linux

ハドゥープ
Hadoopとは

Hadoop

2010/03/15
加藤 慶信=日経Linux

 大量のデータを複数のコンピュータで分散処理するためのプラットフォームを構築するオープンソース・ソフトです。米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との大きな違いです。

■変更履歴
最後の段落で「スケールアップによる性能向上が可能」としていましたが、正しくは「スケールアウトによる性能向上が可能」です。お詫びして訂正します。本文は修正済みです。 [2010/03/16 10:50]

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介