MOONGIFT

オープンソース・フリーウェアを毎日紹介するブログ。日々の業務の効率化、新しいサービスのネタ探しにどうぞ。SNS、SBS、CMS、オフィス、画像編集、ユーティリティ、Firefoxアドオン、テキストエディタ、ゲーム…ジャンルは様々。

Googleのデータ処理分散システムMapReduceのオープンソース実装「Skynet」

タグ: [] [] [] [] [] [] [] []

buzz_button

Googleではその超巨大なコンピュータネットワークを使って、データ処理が分散化されている。これにより、大量のデータを瞬時に処理することが可能になっている。この分散処理システムはMapReduceと呼ばれており、Googleの基盤を支えるコア技術の一つだ。

ピクチャ 65.png
処理状態を確認するコンソール

 

ごく小規模なシステムであればニーズは発生しないかも知れないが、数十台、数百台のコンピュータを結びつける上で分散化処理は欠かせない技術だ。そこでMapReduceをオープンソース実装したこちらを紹介しよう。

今回紹介するオープンソース・ソフトウェアはSkynet、Rubyで実装されたMapReduceのオープンソース実装だ。

Skynetは多数のワーカーを立ち上げ、それらが互いに監視し合うことで障害発生時にも柔軟にタスクの受け渡しが可能になっている。単一障害点はなく、マスタサーバという位置づけのものですら他のワーカーが補えるようになっている。

ピクチャ 66.png
ヘルプ

 

gemだけでインストールできるシンプルさが素晴らしく、データベースはMySQLが利用できる。また、Railsと連携させることや、モデルにてdistributed_findというメソッドを使って、処理内容をSkynetのワーカーに飛ばすといった操作ができる。

GoogleのMapReduceとの違いについては、Skynetはプログラムコードを送ることができない、マスタプロセスが存在しない点が挙げられている。中〜大規模なシステムを運用する上で重要なヒント、技術になりえるであろう分散化処理を知る上でSkynetは便利に使えそうだ。

 

space
 http://skynet.rubyforge.org/

RubyForge: Skynet Map/Reduce System: Project Info
 http://rubyforge.org/projects/skynet

June 20th, 2008 Posted by admin | コメントはありません

No Comments »

No comments yet.

Leave a comment

MOONGIFTネットワーク。こちらもぜひご覧ください。
MOONGIFT
Open Service
Rails 2.0
Resident on Net
iPhone最適化
リーンソフトウェア
MarketPedia
Producing Web
Cool Coding