そんなHadoop Coherence Japanには、今年はキーノートのスピーカーに「Hadoopの生みの親」としても有名なDoug Cutting氏が来日し講演を行った。現在は主要Hadoopディストリビューターの1つであるClouderaのチーフ・アーキテクトでもあるCutting氏に、キーノート講演後にHadoopの現状とこれからについて話を訊いた。
みんなが使うにはオープンソースであることが重要
―大容量のデータを分散処理コンピューティングで効率的に処理できるバッチ処理エンジンとして登場したHadoopですが、そもそもこれを構築しようとしたきっかけはどんなことだったのでしょうか?
Cutting:Googleの発表論文を読んだ際にインスピレーションを受けました。この新しいデータテクノロジーは、他の人たちも使いたいのではと思ったのです。そして、これを人々が活用するにはオープンソース・ソフトウェアがいいとも思いました。
私自身、ビッグデータを管理するのに拡張性のある安価な仕組みを求めていました。この要求は一般的なものではありますが、たとえばWebの世界における検索のようなもののためには十分な予算がありません。安価であることは重要なニーズでもありました。さらに限られた用途ではなく、汎用的な仕組みが欲しかったというのもあります。
信頼性ある分散型システムを作るのは、難しいものがありました。たとえば、100台のマシンで分散して動くようにするのは難しいのです。なので100台でワークロードを容易に共有できれば価値がある。100台を1つとして動かせれば、処理を分散させるテクノロジーをユーザーが再構築する必要もありません。
―そういうきっかけで生まれたHadoopは、ビッグデータの追い風もあり一気に普及してきた感もあります。この普及は想定の範囲内でしたか?
Cutting:今の普及状況は、私の予想を遙かに上回るものです。当初は、Hadoopは検索エンジンを構築しているような人たちに有用だろうと思っていました。小売業や金融機関などで利用されるとは想像もしていませんでした。
銀行などの金融業では、顧客のことを知るためにATMやクレジットカードなどさまざまな情報源からデータを集め統合する必要があります。そうすることで顧客に対する理解を深め、優良顧客にはさらにサービスを提供する。ところが現実はシステムがばらばらで、データを統合することも集めたデータを分析することも既存システムではなかなかできなかったのです。そこにHadoopのパフォーマンスがマッチしたのだと思います。
―Hadoopが普及している理由の1つに分散ファイルシステムのHDFSに対する高い評価があるかと思います。HDFSが評価されているポイントはどのような点にあると考えていますか? 逆にHDFSの弱点はありますか?
Cutting:HDFSが成功したのは、安価に拡張できる点にあると思います。従来の1/10程度のコストでそれを実現できる。そしてHDFSで分散した環境で、どのように演算を行うかも一緒に提供したことがもう1つの成功した理由でしょう。MapReduceがその1つですが、これはデータがあるところで計算するものです。演算するためにデータを移動すると、大きなコストがかかります。それをなくしたのも成功のポイントです。それと、オープンソース・ソフトウェアとして提供したのも大きいです。
逆に現時点での弱みは、歴史が浅い技術だということでしょうか。実装している機能にもまだまだ開発途上のものがあります。暗号化機能などもそうですが、まだまだあまり使われていません。こういった機能が、これからもまだまだたくさん出てくると思います。
―MapReduceは使いにくい難しいという声も聞こえます。MapReduceの評価できるところ、逆に足りないところはどのような点だと考えていますか?
Cutting:MapReduceは新しいテクノロジーであり、これがあるからユーザーがHDFSで新たな能力を活用できるようになりました。MapReduceは、使いやすさが利点ではありません。Apache Sparkのような新しい使いやすい技術が出てきたので、今後はこういったものに置き換わっていくことになるでしょう。
データ量が1台のサーバーで収まらなくなったときがHadoopの出番
―リレーショナルデータベースの世界では、インメモリデータベースが当たり前になりつつあります。Hadoopではインメモリをどのように活用していくのでしょうか。メモリ価格が安くなり、サーバーに豊富に搭載されることでHadoopのアーキテクチャに影響はありますか?
Cutting:この先数年で、巨大なメモリを搭載したマシンが出てくるでしょう。Sparkではインメモリでキャッシングができ、これによりパフォーマンスがかなり向上します。Hadoopでは、基本的にはメモリとハードディスクの間でデータが行ったり来たりして処理します。メモリが大量に搭載されればこの部分のやり取りが減ることになり、Sparkではそれを効率よく行っています。
とはいえ、拡張するためにハードディスクを追加する状況は変わらないと思います。メモリも増やしますがハードディスクも増やす。なぜなら、データ増加のスピードがメモリ増加のスピードを上回っているからです。
今100台、1,000台で運用しているHadoop環境は、メモリが大きくなり1マシンがパワフルになれば統合されるでしょう。とはいえそこからまたデータが増えれば、結局はノードを追加することになる。Hadoopは数100ノードで利用しなければならないわけではありません。10ノード構成でも恩恵は受けられます。データ量が1台で収まらなくなったとき、それがHadoopの価値が出るポイントです。
―サーバー、ネットワーク、ストレージなどを仮想化するのが当たり前の状況もあります。クラウドを含め仮想化のテクノロジーがHadoopのアーキテクチャに与える影響はありあますか?
Cutting:Hadoopを仮想化の技術と一緒に使うことは可能ですが、Hadoopにとって仮想化は有用だとは言えません。Hadoopの場合は、ストレージはローカルに持つのが最適です。OSも仮想化していないほうがいい。仮想化を使っているユーザーもいますが、仮想化のメリットに対する例外の1つがHadoopかもしれません。