HadoopはGoogleのGFSおよびMapreduceのオープンソースクローンとして誕生しました。インターネットコンテンツが、
前回まで5回にわたってhadoopの概要、
Hadoopを言い表すキーワードとしては
- 分散ファイルシステム
- 容易な分散計算フレームワーク
- 特定の言語に依存しない作り
が挙げられます。
- 分散ファイルシステム
分散ファイルシステムを用いることで、
スケールアウトを前提とした設計となっており、 拡張性が非常に高くなっています。さらにレプリケーションを設定することで、 耐障害性も高くなり、 大規模データを前提としたシステム構築に優れている。 - 分散計算フレームワーク
分散計算フレームワークの入出力にキーとバリューという単純な構造を採用している。そのため、
プログラミングロジックをくむ際に複雑な入出力を考慮に入れなくて良い。MapとReduceという明確に2つのフェーズが分かれているため、 どこで何を実装するべきか、 というのが直感的に理解しやすい。 - 特定の言語に依存しない
ストリーミング方式を使うことで、
JAVAという言語に縛られることなく分散計算を実行することが可能となる。いわゆるスクリプと言語での実装も可能なため、 学習コストが低く、 既存のシステムへの適用も容易となっている。
これらが何をもたらしたかというと、
Hadoopの今後
平成21年度 産学連携ソフトウェア工学報告書の公表についてというWebページでは、
その中身は相当濃いものとなっており、
- Hadoop環境導入
- MapReduceプログラミング
(ソース付き) - Hadoopを使用する上でのボトルネックポイント
- チューニングポイント
- システム/ネットワーク構成
- 運用での監視
と、
これはHadoopが大規模計算フレームワークとしての実用性を実証する資料であり、
また、
おまけ
本連載を執筆中にCGIとJavaScriptを組み合わせたHadoop風なモノを思いつきで開発してみました。
まだ体裁が整ってないのですが、