Preferred Infrastructure(PFI)とNTTレゾナントが共同でHadoopに関する調査を行い、その報告書がPDFにて公開されています。
HadoopはGoogleのMapReduce(編注)をJavaで実装したオープンソースプロダクトで、報告書ではGoogleが持っている機能をHadoopではどう実装されているのかを、該当ソースのポインタを含めて記載しています。
Googleの分散ファイルシステムであるGFS(Google File System)は、HadoopではHDFS(Hadoop DistributedFile System)にて実現しています。GFSが提供しているファイルシステム機能のほとんどはHDFSでも提供しています。ただし、調査を行ったHadoop0.16.4では「ファイルのランダム書き込み」と「ファイルのアトミックな追記」は実現できていません(後者は0.19.0にてサポート予定)。報告書ではHadoopの問題として、複数マシンで稼働する際、スレーブにあたるDataNodeには耐障害性を備えていますが、マスタにあたるNameNodeは障害が発生すると完全なサービス停止状態になり、SPOF(Single Point of Failure)であることを挙げています。ただ、執筆時点(2008年9月)の最新バージョン0.18.0ではNameNodeの弱点を補強する対応がいくつか施されています。
GoogleのMapReduceに関して、Hadoopでも主要機能はほとんどサポートされています。HadoopはJavaで記述されていますが、HadoopStreamingを用いるとPerlやPythonなど任意のプログラミング言語で記述することもできます。耐障害性に関する機能は一部未実装ですが「エラーレコードのスキップ」に関しては0.19.0にてサポート予定です。
また、「ソースコード解析」という章ではHadoopのコードリーディングに役立つ情報がまとめられています。最後に性能評価として12台のマシンを使って100Gバイトのデータの読み込み、書き込み、ソートのベンチマークを行っています。資料に記載のグラフを見ると、マシン台数に比例してスループットが向上しています。
このように、耐障害性にてGoogleのMapReduceに比べて未サポートの機能があったりなど若干劣る面がありますが、実用性は十分に備わっていることがわかります。
URL:http://preferred.jp/pub/hadoop.pdf