ビジネスに根付く分散処理基盤「Hadoop」、その利用実態を聞く


 昨年から注目を集めているのが、オープンソースのHadoopだ。Hadoopは、分散ファイルシステム上のビッグデータを処理できるシステムとして、米国Yahoo!の検索インデックスやレコメンデーションに利用されている。そのほか、楽天では広告のインプレッションログ解析、レコメンデーション、ランキング集計として利用されていたり、モバゲーで有名なDeNAでは、ユーザーの属性や行動パターンの解析に利用されている。

 このようにHadoopといえば、ビッグデータの解析に利用されることが多い。実際、ヤフージャパンでは、以前6時間ほどかかっていた、検索関連のサービスでHadoopを利用するようになって、処理時間が5分ほどで済むようになったという。

 このように、膨大なデータを蓄積している企業にとっては、Hadoopは今までにない新しいビジネスを生み出すエンジンとなっている。

 今回は、Hadoopに関するビジネスを行っているNTTデータ、ビッグデータとは異なった視点でHadoopを活用しているノーチラス・テクノロジーズの2社にお話を伺った。

 

日本でHadoopソリューションを提供する草分けとなったNTTデータ

NTTデータ 基盤システム事業本部 システム基盤 サービスビジネスユニット OSSプロフェッショナルサービス シニアエキスパートの濱野賢一朗氏

 今回お話を伺ったのは、NTTデータでOSS(Open Source Software)にかかわっている、基盤システム事業本部 システム基盤 サービスビジネスユニット OSSプロフェッショナルサービス シニアエキスパートの濱野賢一朗氏だ。

 「NTTデータがHadoopに取り組んだのは、2007年ごろからになります。NTTデータといえば、皆さんの中に手堅い会社というイメージがあると思います。OSSにおいても、ある程度製品としてこなれたソフトウェアを利用することが多かったんです。ただ、Hadoopに関しては、動かすのに苦労するぐらいの初期から手がけることになりました」。

 「これはHadoopというテクノロジーが、今までにない唯一のソリューションとして出てきたためで、われわれも大いに注目していたんです。もう1つ、いろいろな部分に不都合があっても、Hadoopが提供するソリューションを使いたいというお客さまが最初からあったということも重要なポイントでした。このお客さまは、2008年の時点でペタバイトクラスのビッグデータを処理するために、約1000台近いサーバーをHadoopで動かしています。ある意味、PB(ペタバイト)のデータを処理するを処理するには、Hadoopしかなかったのです。お客さま自身もHadoopの開発状況をよくご存じで、不都合な部分はだましだまし使っていくという選択をされました。Hadoopでは、これほど、今までとは違ったまったく新しいソリューションを提供できています」(以上、濵野氏)。

 つまり、NTTデータが一般に提供しているITソリューションのように、自信を持って完全なものとして提供するのではなく、いろいろ問題があるがHadoopしか解決方法がないということで、ユーザー企業と一緒にリスクを負って開発したものだ。それだけ、Hadoopというソリューションに魅力があったのだろう。


Hadoopは、大規模分散処理を行うためのフレームワーク。特に、今まで処理できなかったペタバイトクラスのデータ処理が可能になるHadoopクラスタは、ストレージI/Oを処理するHadoopスレーブサーバーとシステムをコントロールするHadoopマスターサーバーに分かれる。すべてのサーバーは、コモディティ化されたIAサーバーを利用するHadoopでは、分散ファイルシステムのHDFS、データ処理を行うMapReduceフレームワークが用意されている
Hadoopを活用するために様々な周辺ツールが用意されている。SQLライクな言語でMapReduceを実行できるHIVE、Hadoop上で機械学習を容易に実行するためのMAHOUT、カラム指向のKey-Valueストアデータを扱うHBASEなどがあるNTTデータでは、OSSを積極的に採用している。Hadoopは、OSSの中でもチャレンジングなソフトウェアだ。Hadoopには、不安定な部分や製品として確立されていない部分があるが、そういったデメリットを超えたメリットが存在する

 このようにHadoopの創世記からかかわってきたNTTデータでは、テレコム系などの先進的なHadoopソリューションの開発を行い、Hadoop活用のノウハウを蓄積。2010年7月には、自社のクラウドサービス「BizXaaS」のラインアップに、Hadoop構築・運用ソリューションというサービスを新設した。

「BizXaaSのメニューにしたのは、それまでに蓄積していたノウハウがきちんとたまって、われわれもHadoopでのシステム構築に自信が持てるようになったことと、多くのお客さまが抱えているビッグデータをどう活用していくのかというニーズの部分でマッチしたからです。お客さまが、Hadoopというキーワードを知ったというのも大きなポイントかもしれません」(濵野氏)。

 NTTデータでは、BizXaaSでHadoopサービスを提供する時に、Hadoopを開発した中心的なメンバーが所属する米Clouderaと提携して、同社が提供するHadoopのディストリビューションCloudera's Distribution including Apache Hadoop(CDH)を使ったサービスを提供している。


Hadoopを開発した米国Yahoo!では、検索インデックスやレコメンデーションにHadoopを使っている。2万5000台のサーバーで、ペタバイトクラスのデータを処理している。今までデータ処理に26日間かかっていたのが、20分で終わるようになったFacebookでは、毎日135テラバイトのデータをHadoopで処理している楽天では、広告のインプレッションログ解析、レコメンデーション、ランキング集計に20台ほどのHadoopクラスタを使用している。Hadoopクラスタで使用しているサーバーは、リプレイスした古い機種が使われている
NTTデータが提携したCloudera社は、Hadoopを専業にしている。Cloudera社独自のディストリビューションCloudera's Distribution including Apache Hadoop(CDH)を提供している日本でのCDHのサポートは、NTTデータが行っているHadoopは、IBM、Orcale、EMCなども積極的に自社製品に取り込んでいる。クラウドでは、AWSがElastic MapReduceReduceサービスと提供したり、Windows AzureもHadoopへの対応を表明している

 BizXaaS Hadoop構築・運用ソリューションでは、単にクラウドのBizXaaSで動作するHadoop環境を提供するだけでなく、システムインテグレーションを含めて提供している。

 「Hadoopを使ったソリューションを開発してみて分かったのは、数十台のサーバーでHadoopを運用するのと、数千台のサーバーで運用するのでは、運用コストやサーバーの維持コストなど、さまざまな部分で負担になることが分かりました。こういったことを考えて、クラウドを使ったHadoopソリューションを用意しています。ただ、お客さまによっては、データ自体を外部のクラウドに持ち出せないといったことがあるため、社内サーバーで運用される場合もあります。こういったお客さまにもHadoopでのシステムインテグレーションサービスを提供しています。われわれのお客さまでも、数千台規模のシステムと数十台のシステムに二極分化しています」(濵野氏)。


NTTデータでは、BizXaaS Hadoop構築・運用ソリューションとしてHadoopのクラウドサービスやコンサルティングサービスを提供しているBizXaaS Hadoop構築・運用ソリューションでは、単なるシステム構築だけでなく、ビジネス上のコンサルティングから、システム構築、運用に至るまで、幅広いソリューションを提供しているNTTデータでは、今まで積み上げたHadoopに関するノウハウを元に、高信頼性、高性能、運用性を提供している

 ここ数年注目を集めているHadoopだが、どのような例があるのだろうか?

 濵野氏によれば、当初は膨大なデータが集まるテレコム系の企業やネットビジネスを展開している企業が、レコメンデーションに利用することが多かったという。しかし、最近では、ソーシャルゲームなどを運用している企業や、ビッグデータを使った新しいサービスを行う企業なども出てきているそうだ。ビッグデータはデータ量が多すぎて、今までリアリティのある時間で必要とするデータを取り出すことができなかった。しかしHadoopにより、1カ月分のデータを数週間かけて処理していたものが、数時間、数十分で処理ができるようになるため、この活用のニーズは大きくなっているという。

 ただ、Hadoopにも向いている分野、不向きな分野が存在する。大容量のデータ処理、バッチ処理という面ではHadoopは向いているが、頻繁にデータ更新が行われるオンライン処理などにはRDBMSが向いている。

 「Hadoopは、オンライントランザクションなどの頻繁に更新が起こるシステムに関しては、得意としていません。ある意味、ログなどのデータを処理して、何かのデータを抽出したりすることが得意です。こういったことでは、RDBMSとHadoopは、おのずと利用領域が異なるのだと思います」(濵野氏)。

 また、Hadoopの運用にもポイントがある。頻繁に利用されるデータが1つのサーバーに集中しているのでは、Hadoopのメリットは生かせない。データをうまく複数のサーバーに分散できるかがポイントになる。さらにMapReduceに関しても、きちんと処理を記述しないとデータ処理が破たんすることもある。RDBMSよりも、もっと厳密にプログラミングする必要があるようだ。

 こういった意味では、ユーザー側も手持ちのビッグデータからどのようなデータを作り出したいのかなど、目的を正しく把握しておく必要があるのだろう。


Hadoopは、大容量データ処理に向いているHadoopの適用領域としては、ログ解析やレコメンデーション、データマイニング、機械学習などがある。Hadoopを使いこなすには、高いノウハウが必要になるHadoopにも得意、不得意な領域がある。既存のRDBMSの領域には、Hadoopはマッチしない
RDBMSとHadoopの違い。Hadoopではデータ管理は行わないHadoopでパフォーマンスを上げるには、データをHadoopクラスタに偏らないようにする必要があるHadoopは、スケールアウト技術をコモディティのハードウェアで提供する。今まで扱うことが難しかったビッグデータ処理は、全く新しいIT領域になる

 

Hadoopはビッグデータへの応用ではなくバッチ処理の高速化に向く

ノーチラス・テクノロジーズの神林飛志 副社長

 NTTデータが取り組んでいるビッグデータという分野ではなく、今までのメインフレームやRDBMSで大きな問題になっていたバッチ処理の高速化にHadoopを使おうというのがノーチラス・テクノロジーズだ。

 今回お話を伺ったのは、ノーチラス・テクノロジーズの神林飛志 副社長だ。ノーチラス・テクノロジーズでは、Hadoopを基幹バッチ処理システムに使えるようにAsakusaフレームワークを提供している。

 「Hadoop=ビッグデータ処理といわれていますが、われわれはHadoopが画期的なのは、『データを複数のサーバーに分散することで、I/O処理の高速化が行える』部分にあると考えています。CPUやメモリといったコンピュートの高速化は日々進化していますが、ディスクI/O性能は全く向上していません。Hadoopを使えば、データを分割してサーバーに配置し、処理させることで、システム全体のI/O性能を飛躍的にアップすることが可能になります」(神林氏)。


ビジネスでは、既存のバッチ処理にかかわる問題が全く解決されていない。バッチ処理を解決するには、高速化したCPUやメモリと同じように性能アップするI/Oシステムが必要Hadoopは、データを分散させて、I/O処理のパフォーマンスがアップすることが大きなメリットだHadoopのMapReduceを使えば、複数のサーバーでデータ処理が行える

 ノーチラス・テクノロジーズでは前述のように、Hadoop向けにAsakusaというバッチ処理向けのフレームワークを提供している。なぜ、ビッグデータではなく、バッチ処理に特化したフレームワークを作成し、ビジネス化しているのだろうか?

 「数PBクラスのビッグデータは、テレコム系やセンサーデータなどのログデータが多いのですが、こういったデータは、個人のプライバシーにかかわるものも多いため、それをクラウド上にアップしてHadoopで処理するといったことには、クリアしないといけない法的なハードルがあると思います。また、本当にこういったログデータから、ビジネスにとって意味のあるデータが取り出せるのかといえば、個人的にはあまり意味がないのではと感じています。現在のHadoopで話題になっているビッグデータ処理というのは、ブーム先行で、トレンドに踊らされているように思います」。

 「一方、Asakusaフレームワークがターゲットにしているようなバッチ処理は、データ量は数GB~数TBといった単位ですが、Hadoopを利用することでI/O処理のスループットが大幅にアップして、今までのバッチ処理から考えると数十分の一、数百分の一といった短時間で処理を終えることができます」(以上、神林氏)。


Hadoopの分散I/Oというメリットを生かすことで、今まで進歩が止まっていたバッチ処理の高速化というメリットが得られる。バッチ処理のメリットは、データ量よりも、処理時間の短縮化だ。別に、ビッグデータでなくてもいい。4時間かかていたバッチ処理がHadoopとAsakusaフレームワークを使うことで20分にまで短縮した。

 実際、製パン業のアンデルセンが利用している生産管理システムでは、従来のシステムで4時間ほどかかっていたバッチ処理が、HadoopとAsakusaフレームワークを使うことで数十分にまで短縮されている。このシステムではAmazon Web Servicesのクラウドを利用しているため、専用のシステムを設置しなくても、必要な時に必要なだけ仮想サーバーを調達し、処理が終われば仮想サーバーを停止することが可能で、利用時間分だけのコストで高速なバッチ処理システムを手に入れることができる。

 プライバシーにかかわるデータをクラウドにアップして処理するにはハードルが高いが、生産管理などのデータなら、ユーザー企業が納得すればクラウドを利用することが可能だ。また、データ量としても数GB~数TBのデータなので、クラウドへデータをアップロードする時間も短時間で済む。

 「バッチ処理という点では、多くの企業が処理時間の長時間化に問題を感じているはずです。確かに、キーワードとしてのビッグデータ処理は、新しいビジネスやサービスを産むかもしれませんが、バッチ処理は、多くのユーザーが今直面している大きな問題点なんです。海のものとも山のものとも分からないビッグデータに向かうよりも、バッチ処理の高速化にHadoopを使った方が、今の企業には大きなメリットがあると思います」(神林氏)。

 バッチ処理が高速に行えることで、例えば月次でしか出せなかったデータが、週次や日次で出せるようになったり、原材料コストの変化を複数シミュレーションしたりすることも短時間で行えるようになる。ビジネスにとっては、大きなターニングポイントになるかもしれない。

 ただ、現状でバッチ処理として存在するプログラムをどのように、Hadoop上にインプリメントしていくのだろうか?

 「基本的には、システムを開発した時のバッチ処理のロジックを利用することができます。メインフレームなどのバッチ処理では、きちんとしたドキュメントを残して開発していることが多いので、それをベースにしてHadoopにインプリメントしていけます。ただ問題なのは、最近、RDBMSを使って無理やりバッチ処理を組んでいるシステムなどがあります。こういったシステムでは、ロジック解析をするよりも、新たに作り直してしまった方がシンプルで開発期間も短時間で終わるということも多いですね」(神林氏)。

 神林氏は、現在のビッグデータという流行には否定的だ。ビッグデータの活用、ビッグデータをベースとしたBusiness Intelligence(BI)といったツールにより、今すぐに大きな価値を生み出せるとは思っていないようだ。

 また実は、Hadoopに関しても、あまりこだわりを感じてはいないようである。「われわれが、Hadoopを使っているのは、I/O性能を大幅に引き上げることができるシステムという点だけです。もっと優れたモノがあれば、そのシステムを利用します。問題は、今直面しているバッチ処理をどのようにして短時間化するのかというだけなんです」(神林氏)。

 ノーチラス・テクノロジーにおいては、バッチ処理というハードルを解決するための1つの手法として、Hadoopを考えているわけだ。


Hadoop単体ではバッチ処理を行うための機能が不足している。これを補うのがAsakusaフレームワークAsakusaフレームワークは、実装フレームワーク、コンパイラ、データモデリング、テストツール、運用連携までを含むフルスタックの機能をHadoopに提供するAsakusa DSLでは、コンパイラを使ってMapReduceを生成する。このため、開発者はMapReduceを意識しなくてもいい

 

 ビッグデータは、2012年のキーワードとなっている。しかし、どのようなデータを処理して、有益な情報を得るのかといったことが大きな問題になってくる。

 例えば、携帯電話の基地局データやGPSデータと併せて、どの年代のユーザーが、平日、休日にどのようなエリアにいるのかなどをマーケティングデータとして使いたいといっても、現状ではプライバシーの問題で大きなハードルがある。

 また、カーナビのデータを使って渋滞予測に利用するといっても、現状では統計学の手法を使ったモデルがあるため、わざわざビッグデータで処理する必要はあまりない。

 このように考えれば、確かに日本国内でビッグデータと騒ぐのは流行で、実際のビジネスには寄与しないのかもしれない。

 それよりも、HadoopのI/O性能を生かしてバッチ処理の高速化を目指す方が、ビジネスとしては直接的なメリットが見えるということなのだろう。

 しかし、企業を取り巻く状況は急速に変化しており、どうビジネスを変えればいいか、ということをビッグデータから導き出したい、というニーズも依然として大きいのは事実である。

 Hadoopの活用を考える際には、現実的なメリットと、今後の展開と、双方を考慮する必要があるのだろう。

関連情報