Apache Hadoop について調べてみる(継続中)

| No Comments | No TrackBacks

一時いろんなファイルシステムについて調べていた時期があったので、ついでに備忘代わりにアップw

今回は Apache Hadoop について、これまた既に色々なウェブサービスで利用されているので、ご存じの方も多いはず。

そのうち隙をみてインストールとか色々試してみたいと思います。

■タイトル
---
 Apache Hadoop

■概要
---
 Apache HadoopはフリーのJavaソフトウェアフレームワークであり、
 大規模データの分散アプリケーションをサポートする。
 Hadoopはアプリケーションが数千ノードおよびペタバイトクラスのデータを
 処理することを可能としている。

■前提条件
---
 ・コンピュータやストレージは故障する
 ・高いサーバを必要とせずパフォーマンスを確保する
 ・1度しか書き込まれない大規模なファイルにストリーミング・アクセス

■特徴
---
 HDFS(Hadoop Distributed File System)
  Hadoop独自のファイルシステム。
  各OSが提供するファイルシステム上で動作し、 数ペタバイトの容量まで
  スケールするよう設計されている。

 ・大きなファイルをブロックに分割し、複数のコンピュータにまたがって格納
   →ブロックサイズは通常64MB
 ・データの複製を複数のコンピュータに格納
   →RAID不要で信頼性向上
 ・データノードはHTTPによりデータを提供することができる
 ・スケーラビリティに富み1台のコンピュータに高スペックは必要としない
   →台数が多いほど並列化の原則により高速化
 ・Java言語で作成されたフレームワークがあり、親和性が高い
   →C++、Perl でも
 ・クライアントからは従来の階層構造のファイルシステムのように見える
   →ファイルの作成、削除、移動、リネーム等可能
 ・通常のオペレーティングシステムにはマウントできない
   →Linux では FUSE(Filesystem in Userspace) により、解決可能?

■構成要素
 ネームノード:
  全てのファイル操作を司る。
  ファイルシステムの名前空間を管理し、クライアントによるアクセスを制御。
  HDFSにおける single point of failure(単一障害点)。
  ネームノードがダウンした場合、ファイルシステムはオフラインとなる。
  プライマリ・ネームノード、セカンダリ・ネームノードがあるが、セカンダリは
  プライマリの代替ではなく、ディレクトリ情報のスナップショットをダウンロードし、
  最新のディレクトリ構造を作成するなど、動作上の補助を行う。
  実際の I/O トランザクションはネームノードを通過せず、ブロックとデータノードとの
  間でのファイルのマッピングを示すメタデータのみがネームノードを通過する。
  データノードから送信されてくるハートビート・メッセージのブロック・レポートと
  自身の持つメタデータと突合せ検証し、問題があれば修復アクションを実行。

 データノード:
  HDFS クライアントからの読み書きリクエストに応答する。
  ネームノードから受信されるブロック作成、削除複製のコマンドにも応答。
  ブロック・レポートを含めたハートビート・メッセージを定期的にネームノードに送信。

 簡易構成図:
  http://www.ibm.com/developerworks/jp/linux/library/l-hadoop/

■ファイル操作の流れ
---
 1. クライアントから HDFS へのファイル書き込みが発生
  →ローカル一時ストレージにキャッシング
 2. ブロックサイズを超えるとファイル作成リクエストをネームノードに送信
  →ネームノードはデータノードの ID と宛先ブロックをクライアントに返す
  →同じくレプリカデータノード群にも通知
 3. ブロックをデータノードに送信
  →パイプライン方式で即座にレプリカデータノード群にも送信
 4. クライアントでチェックサムファイルを作成し
  →同じ HDFS 名前空間に保存
 5. 最後のブロックの送信が完了
  →ネームノードは永続メタデータ・ストレージに対してファイルの作成をコミット

■主要なユーザ
---
 ・Yahoo!
 ・Amazon EC2/S3
 ・A9.com
 ・Facebook
 ・Fox Interactive Media
 ・IBM
 ・ImageShack
 ・ISI
 ・Joost
 ・Last.fm
 ・Powerset
 ・ニューヨーク・タイムズ
 ・Rackspace
 ・Veoh
 ・Metaweb

■参考URL
---
 http://ja.wikipedia.org/wiki/Hadoop
 http://www.ibm.com/developerworks/jp/linux/library/l-hadoop/
 http://d.hatena.ne.jp/naoya/20080511/1210506301
 http://www.db.is.kyushu-u.ac.jp/rinkou/cloudcomputing/hadoopinstall.html

広島ブログ

No TrackBacks

TrackBack URL: http://mt.himawari-dream.com/mt-tb.cgi/525

Leave a comment

About this Entry

This page contains a single entry by kado published on 2010年7月17日 10:54.

HTML5 で広がるWebアプリの世界 was the previous entry in this blog.

HTML5 でメニューの開閉状態を保存する is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.