約1年間の不在、そして、今は無きGigaom Researchでリサーチディレクターを務めた期間を経て、筆者はビッグデータ関連の記事を執筆するために米ZDNetに戻ってきた。この1年はあっと言う間に過ぎ去ったが、かなりの変化も起こった。
- 「SQL-on-Hadoop」が普及し、「Hadoop」とリレーショナルデータベースを扱うほぼすべてのベンダーが独自のソリューションを提供するまでになった。
- 業界の整理統合が始まった。JaspersoftやPentaho、Hadapt、RainStor、Revolution Analyticsといった企業が既に買収されたか、近いうちに買収される予定だ。
- 現在、「YARN」と「Hadoop 2.x」が多くのマインドシェアを占め、従来の「MapReduce」は後退している。
しかし、特に注目すべき変化が1つある。「Apache Spark」に対して、業界が非常に大きな関心と期待を抱くようになったことだ。
Sparkは、Hadoopから独立して動くことも、Hadoopクラスタ上のYARNアプリケーションとして動くこともできる。後者の構成では、Sparkは「Hadoop分散ファイルシステム」(HDFS)のデータを読み取った後、そのデータに関して、さまざまなワークロードが実行されるようにすることが可能だ。「Spark SQL」は、「HiveQL」と互換性のあるSQL実行環境を実現し、Sparkの「MLLib」は機械学習を可能にする。「Spark Streaming」はデータの高速ストリーム処理を、「GraphX」はグラフ処理をそれぞれ提供する。
Sparkの使い勝手
Spark SQLがもたらす親しみやすさに加えて、Sparkのコードは「Scala」と「Java」「Python」で記述できる。Sparkはメモリを使用することが可能だ(使用しなくてもいい)。しかも、クラスタのノードのRAMを分散的に使用できる。Sparkでサンプルアプリケーションを動かすのは、かなり容易だ。こうした要素と、メモリベースの非バッチ処理機能が組み合わさることで、いわば相互作用的な実験を行い、ほぼ瞬時に満足感を得られる。それは、従来のHadoopの世界では、特別なことだ。
その比較的摩擦の少ない体験(これはコマンドライン使用時にも当てはまる)には、人々を夢中にさせる魅力がある。そして、業界は実際に夢中になっている。Sparkは現時点ではかなり新しいもので、数人がSparkはまだ完全には成熟していないと筆者に報告したが、Sparkに対する業界のサポートは強力だ。Clouderaは自社のディストリビューションのHadoopエコシステムコンポーネントの大半をSparkに移行することを約束している。MapRは独自のディストリビューションにSparkを追加している。なかなかSparkを受け入れなかったHortonworksも時流に乗って、同社独自のHadoopディストリビューション「Hortonworks Data Platform」(HDP)にSparkを追加した。
使い始めるのは簡単
Amazonの「Elastic MapReduce」もMicrosoftのクラウドベースのHadoopサービス「Azure HDInsight」もSparkを自動的に追加はしないが、両社ともクラスタ作成時にURLの指定だけを必要とするカスタムスクリプトの手順を通してSparkをインストールできるようにしている。さらに、両社ともサンプルやチュートリアルを提供しているので、間に合わせの「Scala」コードやSQLクエリを簡単に実行することができる。