「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/