3.「Apache Hadoop」の導入前に考慮すべきポイント

hadoop_point.jpg


ビッグデータの活用において、もはや必須のツールとなっている「Apache Hadoop」。これまで困難であった数千台規模のクラスタによる分散処理を実現し、数ペタバイト級のビッグデータも処理することを可能とした分散処理ソフトウェアです。

しかしながら「Apache Hadoop」は、他のツールには見られない特性も備えています。したがって「Apache Hadoop」の導入は、そうした特性を理解した上で検討する必要があるのです。



「Apache Hadoop」の導入時にチェックすべきポイント

「Apache Hadoop」の特性

「Apache Hadoop」を利用した環境では、データ消失を防止するためにデータ保存の際にはレプリカ(複製)を作成して複数のサーバに保管されます。一方でデータを呼び出す場合には、一旦全データファイルを参照することになります。また「Apache Hadoop」では、分散処理を実現するために独自のフレームワークを利用している点も見逃せません。

そして、「Apache Hadoop」の導入を検討する際にはこのような特性を把握した上で、下記3つの点をチェックする必要があるのです。

ポイント1 取り扱うデータの規模は十分に大きいか

「Apache Hadoop」は、「マスタースレーブ型」の分散処理システム。そしてデータを取り扱う場合には、レプリカの作成、ジョブの初期化といった処理が発生します。こうした処理による動作の遅延は、一般にテラバイト級以上のデータであれば許容されます。一方で、小容量(ギガバイト級)のデータでは動作の遅さばかりが目に付くようになってしまうのです。

よって「Apache Hadoop」の導入においては、「Apache Hadoop」で処理をしようと考えているデータの規模が十分に大きい(テラバイト級、ペタバイト級)のかをチェックする必要があると言えます。

ポイント2 RDBMSを利用し続けた方が良いのではないか

データ管理の分野では、これまでRDBMSを利用するのが慣例でした。RDBMSでは、原則としてロードしたいデータをピンポイントで参照することが可能です。一方で「Apache Hadoop」では、先ほど触れた通りデータロード時に全データファイルを呼び出すことになります。したがって、RDBMSと比べてどうしても処理速度が遅くなってしまいがちとなるのです。よって、取り扱うビッグデータの形式などがRDBMSでも対応可能である場合には、従来型のRDBMSによるデータ管理を選択した方が良いというケースもあると言えます。

ポイント3 既存の処理でつかわれている言語は何なのか?

「Apache Hadoop」では、独自のフレームワークをJavaによって実装しています。そのため既存のバッチ処理がCOBOLなどJava以外の言語で実装されている場合には、Javaに書き直さなければなりません。そして当然Javaへの書き換えにあたっては、相応の時間が必要となります。そのため「Apache Hadoop」の導入を検討する場合、「Apache Hadoop」上での処理を想定しているプログラムの言語を確認する必要があります。またその上で、COBOLなどで実装されている処理がある場合には、それをJavaに書き換えてまで「Apache Hadoop」で処理する必要があるのかを時間的なコストを考慮しながら検討すべきです。

以上のポイントに加えて、「Apache Hadoop」の導入を検討する上では「どのバージョンの『Apache Hadoop』を導入するのか」という選択も重要になります。オープンソースウェアである「Apache Hadoop」は日々進化を続けており、新たな機能も次々と実装されているからです。

YARNの追加された「Hadoop 2.2」

・更なるスケールアウトが可能に

たとえば「Hadoop 2.2」では、「YARN」を利用できるようになりました。YARN(Yet Another Resource Negotiator)は、「Apache Hadoop」においてクラスタのリソース管理とジョブスケジューリングを担当。そのためMapReduceはリソース管理・ジョブスケジューリングから切り離されるためさらなる規模のスケールアウトが可能となりました。

・安易なスケールアウトは、コストの増大を招く

ただし、YARNを利用する場合にはこれまでよりも多くのマスタノードが必要になるとされています。したがって、大容量のデータを管理するためにYARNを利用できる「Hadoop2.2」以降を導入する場合にはマスタノードの管理コストも増大します。

・規模に応じたバージョン選択が必要

以上から、YARNを利用できる「Hadoop 2.2」を導入するのか、それともそれ以前のバージョンの「Apache Hadoop」を導入するかはデータ量の規模に応じて検討する必要があります。また、現時点だけではなく将来的な見通しも含めてデータ量の規模を想定しなければなりません。

ビッグデータ分野での活用の進む”パッケージソリューション”

・「Apache Hadoop」を導入すべきかを判断することは難しい

このように「Apache Hadoop」の導入を検討する場合には、その特性を十分に理解した上で処理するデータの規模や特性を踏まえることが重要です。

しかしながら、「Apache Hadoop」をはじめて利用するという場合には、自社のデータがその特性と合致しているかを判断するのは容易なことではありません。そのためビッグデータを活用する目的で、「Apache Hadoop」と同様の分散処理を実現できるパッケージソリューションを利用するという企業も少なくありません。

・いま注目のパッケージソリューション、「Treasure Data CDP」

そしてトレジャーデータ社の提供する「Treasure Data CDP」も、「Apache Hadoop」と同様の分散処理を実現できるパッケージソリューションのひとつ。クラウド型ビッグデータ基盤サービスとして、多くの企業で導入が進んでいます。

この「Treasure Data CDP」について、次回詳しくご説明します。

関連記事