SourceForge.JP: Open Source Software

LoginCreate AccountHelp

[RSS]OpenSource Downloads

(11,563) Cabos
(2,276) 7-Zip
(1,935) HandBrake Japanese Language Version
(1,753) Tera Term
(1,270) CrystalDiskInfo
(868) Tween - client software of Twitter
(681) ffdshow
(636) ギコナビ
(626) CrystalDiskMark
10  (624) Amateras
11  (601) VirtualDubMod-jp
12  (462) MergeDoc
13  (386) NNDD - ニコニコ動画DL&再生ソフト
14  (376) WordPress Plugins/JSeries
15  (376) えこでこツール
More >>

最近ブックマークされた記事

Magazine 最新特集記事

オープンソースソフトウェアで強化するWindowsデスクトップ

 「オープンソースソフトウェア」というと、Linux/UNIXの世界が中心というイメージがあるかもしれない。しかし、現在ではWindows向けのオープンソースソフトウェアも多数公開されている。そこで本特集では、システムカスタマイズツールやマルチメディア関連ソフトウェア、バックアップツールなど、有用なWindows向けオープンソースソフトウェアを紹介していく。

大幅なスペックアップで生まれ変わった超小型Linuxサーバー「OpenBlockS 600」徹底活用

 超小型のLinuxサーバーとして有名な「OpenBlockS」に、大幅なスペックアップが施された新モデル「OpenBlockS 600」が登場した。そこでOpenBlockS 600の仕様を紹介するとともに、ルータ・ブリッジとしての利用やネットワークの管理・監視への利用など、実運用に向けての利用例やセットアップ例を解説する。

セキュリティ

Hadoopを用いたクラスタコンピューティング環境の構築

2008年10月24日 10:06AM 1 2 3 4
  • スラッシュドットにタレコむ
  • あとで読む

 ペタバイト規模のデータを格納させる分散コンピューティング用プラットフォームを探しているのであれば、そのフレームワークとして Hadoop の使用を検討すべきだろう。HadoopはJavaベースで作成されているため、Linux、Windows、Solaris、BSD、Mac OS Xにて使用できる。こうしたHadoopを実際に採用している組織に共通するのは、安価(特殊なハードウェアが不要)かつ効率的でスケーラビリティと信頼性を兼ね備えたプラットフォームによる、膨大な量のデータ処理を必要としているという点だ。

 Hadoopでは、こうした膨大な量のデータを格納するために、Hadoop Distributed File System(HDFS)を採用している。実際、HDFSのマスタ/スレーブアーキテクチャは、Hadoopのクラスタ機能の中核を成している。ここでサポートされているのは、ファイルシステムのメタデータ管理用マスタサーバとして機能する1つのNameNodeおよび、実際のデータ群を格納する多数のDataNodesという基本構成だ。

 ただしNameNodeは単一点障害(single point of failure)となる危険性があるため、HadoopではSecondary NameNodeを用意することで、名前空間の定期チェックをさせると同時に、NameNodeに保持させるHDFSの変更ログファイルを一定サイズ以下にするようにしている。こうしたHDFSのアーキテクチャについては、ダイヤグラムを用いた解説ドキュメントが公開されており、また「HDFS User Guide」というユーザの視点に立った包括的なHDFSの導入ガイドも参考になるだろう。

 Hadoopにおけるデータ分散処理のベースとなっているのは、Googleにより提唱されたMapReduceというプログラミングモデルだ。このモデルをHadoopの場合は、各ノードにおけるJobTrackerプロセスが、クラスタのジョブスケジューラおよびアロケータとして機能し、個々のクラスタノードにおけるTaskTrackerへのジョブ割り当てを行うという方式にて実装している。つまりJobTrackerとTaskTrackerの関係は、前者がMapReduceマスタで、後者がMapReduceスレーブという位置付けと見ればいいだろう。

 Hadoopクラスタの機能ユニットである、NameNode、DataNodes、JobTracker、TaskTrackerは、いずれもデーモンとして実装される。そしてすべてのノードには、クラスタの状態をチェックするためのWebサーバが組み込まれるようになっている。NameNodeにおけるこうしたWebサーバの役割は、DataNodesのステータス情報をレポートすることであり、これによって、ライブおよびデッド状態のノード、分散ファイルシステムの容量など、様々な情報を確認できる。TaskTrackerおよびその上で実行中のタスクに関するステータス情報は、JobTrackerにて動作するWebサーバにより監視できる。

 本来Hadoopは、Nutchプロジェクト用のインフラストラクチャとして作成されたもので、これはインターネット上のWebページ群を巡回して検索エンジン用のインデックスを構築する、クローラとしての用途が意図されていた。このような背景を有しているHadoopにとって、膨大な量のデータを対象に同様のプロセスを実施するというタスクは、非常に親和性の高い分野なのである。

 Hadoopは、3つの動作モードにて実行させることができ、その1つであるデフォルト状態のHadoopでは、分散型モデルではなく単一のJavaプロセスとして動作するように設定されている。これは実用には適さない設定ではあるが、複数のコンピュータを準備する必要がないため、Hadoopの操作法を学習するのには役立つはずだ。またこれと同様の目的で、Hadoopのデーモン群を1つのノード内で動作させつつ、Javaプロセスとしては各デーモンが個別に動作するという、疑似分散モードも用意されている。最後に残された完全分散モードの場合、当然ながらHadoopを実行するノード群では、NameNode、JobTracker、DataNodes、TaskTrackerを実際に分散させた形で使用することになる。なお、こうした分散モードによるHadoopのセットアップには、最低3つのノードが必要だ。

Amit Kumar Saha
2008年12月24日 05:07PM 更新