MapReduce代替の「Apache Spark 1.0」が登場

 非営利団体のApache Software Foundation(ASF)は5月30日、大規模なデータ処理を行うための分析ソフトウェア「Apache Spark 1.0」のリリースを発表した。「Apache Hadoop」のMapReduceを置き換えることを目指すもので、多くの変更点が加えられている。

 Apache Sparkは米カリフォルニア大学バークレー校のAMPLabで開発された分散コンピューティングフレームワーク。高度なDAG(Directed Acyclic Graph)実行エンジンを持ち、より小さい粒度での処理を行うのが特徴。バッチモードで処理を行うMapReduceと比べるとインメモリ利用時に最大100倍の高速化が可能で、かつより高い安定性もあるという。HDFS、HBase、Cassandraに対応し、スタンドアロンのほか「Apache Mesos」、Amazon AWS(EC2)上でも動く。ASFのインキュベーター(孵化段階)プロジェクトとして加わったのは2013年6月で、半年後の2014年2月にはトップレベルプロジェクト(TLP)に昇格している。

 バージョン1.0では、コアインターフェイスAPIが安定版となり、今後バージョン1系での仕様変更は行われない。これにより、今後Apache Sparkを利用するアプリケーションはApache Sparkのバージョンを上げても同じように動作することが期待できる。このほか、Hadoop/YARN(Yet-Another-Resource-Negotiator)セキュリティモデルを統合し、ジョブ依頼、HDFS証明書の転送、コンポーネント間の通信などを安全に行うことができるという。HiveやMesosといったクラスタツールとの統合性も強化した。

 また、本バージョンでは新たに「Spark SQL」が実験的に導入されている。HiveやParquetなど外部の構造データソース、あるいは既存のRDD形式データにスキーマーを追加することで、Spark内で構造化データの読み込みや操作が可能になる。マシン学習ライブラリのSpark実装である「MLlib」も改善し、ScalaやJava、Pythonにおいて疎ベクトルのサポートも行われた。主成分分析のPCA(Principal Component Analysis)、特異値分析のSVD(Singular Value Decomposition)などの分散マトリックスアルゴリズム、拡張性のあるディシジョンツリーなど新しいアルゴリズムも加わった。

 このほか、分散グラフシステム「GraphX」では、グラフ読み込みの性能を改善するなど多数の強化を施した。また、JavaバインディングでJava 8とラムダ式のサポートが加わった。

 Apache SparkはプロジェクトのWebサイトより入手できる。ライセンスはApache License 2.0。

Apache Spark
http://spark.apache.org/