「Apache Spark 3」リリース、GPUアクセラレーションに対応するスケジューラを導入

 分散処理フレームワークのApache Spark開発チームは6月18日、最新のメジャーリリース版となる「Apache Spark 3.0.0」を公開した。

 Apache Sparkは大規模なデータ処理向けアナリティクスエンジン。SQL、DataFrames、機械学習用のMLlib、グラフデータベース用のGraphXなどを活用できるライブラリを用意し、Java、Scala、Python、R、SQLなどの言語を使って並列処理アプリケーションを作成できる。スタンドアロンまたはApache Hadoop、Apache Mesos、Kubernetesといったプラットフォーム上で実行できる。もともとは米カリフォルニア大学バークレー校のAMPLabでスタートしたプロジェクトで、その後Apache Software Foundation(ASF)に移管、プロジェクトは今年で10周年を迎えたことを報告している。

 Apache Spark 3は、2016年に登場したApache Spark 2系に続くメジャーリリースとなる。Project Hydrogenの一部として開発してきた、GPUなどのアクセラレーターを認識できる新たなスケジューラが追加された。あわせてクラスタマネージャとスケジューラーの両方で変更も加わっている。

 性能面では、Adaptive Query Execution(AQE)として、最適化レイヤーであるSpark Catalystの上でオンザフライでSparkプランを変更することで性能を強化するレイヤーが加わった。また、動的なパーティションプルーニングフィルターを導入、 ディメンションテーブルにパーティションされたテーブルとフィルターがないかをチェックし、プルーニングを行うという。

 これらの強化により、TPC-DS 30TBベンチマークではSpark 2.4と比較して約2倍高速になったという。

 最も活発に開発が行われたのはSpark SQLで、SQLとの互換性をはじめ、ANSI SQLフィルタやANSI SQL OVERLAY、ANSI SQL: LIKE … ESCAPEやANSI SQL Boolean-Predicateといったシンタックスをサポートした。独自の日時パターン定義、テーブル挿入向けのANSIストア割り当てポリシーなども導入した。

 このほか、ストリーミング、グラフ、機械学習などでも多数の強化が加わっている。

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