[筆者: Raymie Stata](AltiscaleのCEO)
今年の6月はApache Sparkにとってエキサイティングな月だった。San Joseで行われたHadoop Summitで頻繁に話題になっただけでなく、Spark関連のプレゼンテーションも多かった。6月15日にIBMは、Sparkの関連技術に大量の投資をすると発表した。
この発表がSan Franciscoで行われたSpark Summitに火をつけ、来場者は昨年に比べて急増した。Sparkを試してみたい、という企業の数も増えた。
こうしてSparkへの投資と採用の好循環が回りだしたため、この重要な技術の成熟度と能力も急速に高まり、ビッグデータコミュニティの全体がその利益を享受した。しかし、Sparkへの関心が高まるにつれて、奇妙で偏狭な誤解も生まれてきた。それは、SparkはHadoopに取って代わるものであり、後者を補完するものではない、という誤解だ。たとえば次のような見出しは、この誤解の産物だ: “新しいソフトウェアがHadoopを蹴散らす”とか、 “企業はビッグデータでHadoopの次の技術へ”。
ぼくはビッグデータとの付き合いの長い人間で、初期のHadoopに対するYahoo!の投資も擁護し、今では企業にビッグデータのSaaSを提供している会社のCEOだ。だからこの誤解を解きほぐす役割として、適任かもしれない。
SparkとHadoopは、一緒に使うものであります。
Hadoopは今やますます、ビッグデータ分析をやろうとする企業にとって、定番のようなプラットホームになりつつある。SparkはそのHadoopをより高速に動かすための、インメモリ技術だ。eBayやYahoo!などの、Hadoopの大型ユーザは、Hadoopのクラスタの中でSparkを使っている。ClouderaやHortonworksのような‘Hadoopベンダ’からHadoopのディストリビューションを導入すると、すでにSparkが同梱されている。弊社Altiscaleの顧客も、最初からHadoop上でSparkを使っている。
SparkをHadoopの対抗馬のように言うことは、車をガソリン車から電気カーに変えてとても快調なので、もうこれ以上電気は要らないと錯覚するのと同じだ。むしろ、電気で走るようになった車は、さらに快調に走るためには、さらに多くの電気を必要とするのであります。
なぜ、こんな混乱が生じるのだろう? 今のHadoopには主要部位が二つある。ひとつは、Hadoop Distributed File System(HDFS)と呼ばれる大規模なストレージシステムで、大量のデータをローコストで、しかも多様なデータを高速に処理できるよう最適化した形で保存する。第二の部位はYARNと呼ばれる計算処理の部位で、HDFSに保存されているデータを大規模な並列処理により高速に処理していく。
YARNはその処理方式としてさまざまなプログラミングフレームワークをホストできる。最初に使われたのがMapReduceで、これはGoogleが大規模なWebクロール(crawl)を処理するために発明したフレームワークだ。Sparkもそういうフレームワークの一つであり、最近ではTezというフレームワークも登場した。記事の見出しなどが“SparkがHadoopを蹴散らす”、と言っているときは、実は、今ではMapReduceよりもSparkを好むプログラマが多い、という意味なのだ。
言い換えると、MapReduceとHadoopを同格に扱うことはできない。MapReduceは、Hadoopのクラスタでデータを処理するときの、さまざまな処理方式の一つにすぎない。Sparkは、Haoopに取って代わることはできないが、MapReduceに取って代わることはできる。もっと広い視野で見ると、アプリケーションのレベル、たとえばビッグデータ分析の重要なアプリケーションのひとつであるビジネスアナリシスでは、多くの場合、ユーザのレベルでMap…やSpa…の顔を直接見ることはなく、もっぱら、彼らがいちばん使い慣れているデータクェリ言語SQLが、見かけ上の処理方式だ。
最近の4年ぐらいで、Hadoopを使うビッグデータ技術に大きなイノベーションが訪れている。まず、SQLがバッチではなくリアルタイムの対話型になった。そしてフレームワークは、MapReduce一本槍から、MapReduceもSparkも、そしてそのほかにも、いろいろあります、というご時勢になっている。
HDFSは、パフォーマンスとセキュリティが大幅に改良された。またビッグデータ分析のユーザビリティを良くするためのさまざまなツール…Datameer、H20、Tableauなどなど…が続々登場している。そしてこれらにより、より多くのデータサイエンティストやビジネスユーザにとってビッグデータ分析が、アクセスしやすいものになっている。
Sparkは、Hadoopをリプレースする挑戦者ではない。むしろHadoopは、Sparkがその上で活躍できるための基盤だ。企業が、そのデータ資産をアクションに結びつくビジネスインサイトに換えようとするとき、この両者をベースとする強力でロバストなプラットホームが、ますます多く採用されていくだろう。