米Apache Software Foundationは、ビッグデータ処理を分散クラスター上で高速に実行できる処理基盤「Spark 1.0」を2014年5月30日(米国時間)に公開した。

 HDFSを介してストレージ経由のやり取りが多くなるHadoopと比べて、インメモリー処理を主体とするSparkでは、より高速で低遅延の分析が可能となる。次世代のビッグデータ処理基盤として期待が集まっているフレームワークである。

 SparkではHadoopと同じく、処理対象となるビッグデータをHDFSから読み取ることができるが、以後の処理は基本的にインメモリーで行う。このため、機械学習やグラフ計算のように繰り返し型の計算が多い処理を、Hadoopよりも高速に実行できる(関連記事:NECがビッグデータの機械学習を高速化する技術を開発、インメモリー処理やMPIを導入)。

 Sparkは、もともと米University of California BerkeleyのAMPLabが開発したオープンソースソフト(OSS)である。現在はAMPLabから独立したベンチャー企業である米Databricksなどが主体となって、世界で100人以上の技術者が活発に開発に関わっている。

 Sparkは既に米Yahooや米NASAなどが分析基盤として活用している。これまでは0.9系として開発が進められてきたが、今回のバージョン1.0の投入により、今後の1.X系のリリースではコアのAPIを固定して後方互換性を保証し、Spark上でアプリケーションを構築しやすくする。Spark自体はScalaで実装されているが、Sparkを利用する場合はScalaだけでなく、JavaやPythonなどからも利用できる。

 SparkはHadoopと異なりインメモリー処理を主体としているため、データの耐障害性に対しては独特のアプローチで対処している。「RDD( Resilient Distributed Datasets)」という読み取り専用(イミュータブル)のデータ構造を基盤にしており、Spark上での演算は、RDDからRDDへの変換を連鎖させて行う。クラスター上のノードで障害が起き、データが失われた場合は、この変換の連鎖に関する情報を基に、残っているRDDから再計算することで対処する仕組みだ。