第4回まではHadoopの活用事例や,どのような用途に向いているのかということを中心に解説してきました。さて,最終回となる第5回は,Hadoopをこれから活用し始めようとしているエンジニアが理解しておくべきことや,情報収集のポイントなどについて解説します。
Hadoopの構成要素を理解する
Hadoopの導入を検討する際には,まずは構成要素を理解しておきましょう。Hadoopは大きく2つの要素から成り立っています。1つは分散ファイルシステムの「Hadoop Distributed File System(HDFS)」,もう1つは分散処理フレームワーク「Hadoop MapReduce(MapReduceフレームワーク)」です。どちらも大量のサーバから構成されるクラスタシステムとして動作します。現在はWebから得られる情報や書籍が充実しているのでここでは詳しい説明はしませんが,こういったソースから情報収集する際に注目しておくべきポイントとしては,HDFSとMapReduceフレームワークの場合には,たとえば次のようなものがあります。
- HDFS
- アーキテクチャ
- スケーラビリティ
- ファイルの管理方法
- 扱うファイルのサイズ
- アクセスパターンの向き不向き
- 信頼性確保の仕組み
- 障害発生時の挙動
- その他制約事項
- MapReduceフレームワーク
- アーキテクチャ
- スケーラビリティ
- HDFSとの関係
- 処理方式(バッチやオンライン)の向き不向き
- 分散処理モデル(map関数/reduce関数の処理特性,処理するデータの特性)
- 処理フロー
- 障害発生時の挙動
- その他制約事項
こういったポイントに注目して情報収集すれば,Hadoopの構成要素について,より深い理解が得られます。
利用するHadoop,OS,Javaの種類について理解する
続いてはHadoopをインストールする前に留意しておくべき,Hadoopのバージョンやディストリビューションの違い,および使用すべきOSとJavaの種類について解説します。
Hadoopはまだ発展を続けているプロジェクトです。現在もバージョンアップに伴い,大小さまざまな変更があります。最近ではバージョン0.19から推奨されるAPIが変わったり,またバージョン0.21からはプロパティの名前が変更されたりしました。
バージョンの違いだけではなく,ディストリビューションによっても違いがあります。実は,HadoopにはApache Software Foundationがメンテナンスしている,いわゆる「コミュニティ版」と,コミュニティ版をベースにベンダがカスタマイズしたディストリビューションがあります。これにはたとえば,Cloudera社が整備・配布している「CDH」などがあります。このようなカスタマイズされたディストリビューションではHadoopをより使いやすくするための工夫がされています。
たとえば,CDHでは各種Linuxディストリビューション用にインストールパッケージを用意したり,Hadoopとの組み合わせを検証済みのPig,Hiveなど周辺ソフトウェアを同梱したりといったものがあります。このほかにも,開発効率や安定性を目指してCDHではHadoopの特定のバージョンをベースとしつつも,上位のバージョンの有用な機能,APIやバグフィックスをバックポートしています。
HadoopをインストールするOSにはどんな制約があるのでしょうか。Hadoopはどのディストリビューションでも基本的にはLinuxを対象としています。さらにHadoopのディストリビューションによってはサポートしているLinuxのディストリビューションに制限がある場合があります。カーネルについては32-bit版,64-bit版どちらでも動作するのが普通ですが,利用可能なメモリ量などを鑑みると64-bit版のカーネルを利用するのが良いでしょう。WindowsでもCygwin上でHadoopを動かすことは可能ですが,本格的に活用する場合にはやはりLinuxにインストールすべきです。
この他にHadoopをインストールするうえで留意しておくべきことは,Javaの種類やバージョンです。コミュニティ版やCDHを利用する場合にはOracle Javaの最新版を利用することが多いです。残念ながら現在コミュニティ版やCDHではOpenJDKはサポートされていません。Oracle Javaでも,バージョン1.6.0_18は動作が不安定になるといったバグが報告されているので,利用するJavaのバージョンについては事前に確認したほうが良いでしょう。
こうしたバージョン,ディストリビューションの違いや対象のOS,サポートしているJavaの種類などは各Hadoopディストリビューションのページや,Hadoopをダウンロードした際に同梱されているインストールマニュアルやリリースノート,ChangeLogなどで確認することができます。Hadoopを利用する際には,このようなバージョンや制約事項を把握しておくことが大切です。

