エンタープライズビジネスを加速させるHadoop

第5回 これからHadoopを活用するエンジニアが理解しておくべきこと

この記事を読むのに必要な時間:およそ 3 分

第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やバグフィックスをバックポートしています。

 CDHダウンロードページ

図 CDHダウンロードページ

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を利用する際には,このようなバージョンや制約事項を把握しておくことが大切です。

著者プロフィール

猿田浩輔(さるたこうすけ)

株式会社NTTデータ基盤システム事業本部に所属。
入社以来HadoopをはじめとするOSSの導入支援や技術検証および技術開発に従事。これまでに数百台規模のHadoopクラスタを構築する他,MapReduceアプリケーションの設計/開発支援なども実施。
社内外でHadoopの普及活動を行っており,2011年1月にPFIの太田一樹氏やNTTデータの濱野賢一朗氏らとともに『Hadoop徹底入門』を出版。
http://oss.nttdata.co.jp/hadoop/

コメント

コメントの記入