2. Hadoop & hBaseの概要
Googleの基盤ソフトウェアに共通する特徴は、非常にスケーラブルかつ故障に強いということです。Googleでは全世界中のデータを処理しないといけない訳ですから、大量のマシンでデータを保持・処理するための技術が必要であるのはある意味必然です。
本連載で紹介するHadoop、hBaseは、これらGoogleの基盤ソフトウェアのオープンソースクローンです。HadoopはGoogle File SystemとMapReduce、hBaseはBigTableに相当します。Chubbyのオープンソース実装はまだありません。
最近はWebアプリケーションが全盛期を迎え、以前よりも多くのデータやログを蓄積されている企業も多いかと思います。しかし、データはあってもそれらを有効に活用できていないことが多いのではないでしょうか。
Googleの基盤ソフトウェアクローンであるHadoopやhBaseを実際に使用してその有効性を確かめてもらい、眠らせている大量のデータを処理するために使っていただきたいというのが本連載の目的です。1台しか実験マシンが無くても使えますので、ぜひ実際に動かしてみてください。
それではHadoop、hBaseの概要を説明します。
2.1 Hadoopの概要
Hadoopは主にYahoo! Inc.のDoug Cutting氏によって開発が進められているオープンソースソフトウェアです。現在はApacheプロジェクトのTopProjectとなっています。Hadoopという名前はDoug氏の子供が持っている黄色い象のぬいぐるみの名前に由来しているらしいです。
HadoopはHDFS(Hadoop Distributed File System)、Hadoop MapReduce Frameworkから構成されています。Googleの基盤技術に対応させると、前者はGFS、後者はMapReduceに対応します(図1参照)。
HadoopはすべてJavaで記述されており、MapReduce処理を書く場合も基本的にはJavaでプログラムを書くことが想定されています。ただしHadoop Streamingという拡張パッケージを用いると、C/C++・Ruby・Pythonなど任意の言語と標準入出力を用いてMapReduce処理を書くことができます。
採用実績はこちらをご覧下さい。開発を主導しているYahoo!はもちろんのこと、Facebookでも実際に使用されています。特にログ解析目的での使用が多いようです。
Hadoopに関する情報は以下の場所から得られます。現在日本語での情報はほとんどありません。
- 公式HP
- 公式Wiki
- インストール方法(1ノード)
- インストール方法(複数ノード)
- Hadoop DFS の目標&特徴
- Hadoop DFS のアーキテクチャ
- Hadoop MapReduce チュートリアル
2.2 hBaseの概要
hBaseはBigTableのオープンソースクローンです。Web検索エンジンを開発しているPowerset社のエンジニアが主導して開発しており、Hadoopと同じくJavaで記述されています。hBaseはHadoopに依存しており、実際のデータはHDFS上に安全に保存されます。昔のバージョンのソースコードはHadoopに同梱されていましたが、現在は分かれているので気をつけてください。
以下にhBaseの情報が掲載されているURLを集めてみました。
3. まとめ
今回はGoogleのインフラストラクチャーの説明と、Hadoop、hBaseの概要について簡単に説明しました。次回はHadoopを1台にインストールし、サンプルプログラムを動かしてみます。