分散処理フレームワーク「Apache Beam 2.3」リリース、Java 8をサポート

 高度なユニファイドプログラミングモデルを提供する分散処理フレームワーク「Apache Beam」の開発チームは2月19日、「Apache Beam 2.3.0」公開を発表した。Java 8のフルサポート、SparkランナーでのSpark 2系のサポートなどが特徴となる。

 Apache Beamは、分散処理の定義のためのプログラミングモデル「Mean Programming Model」、SDK(Java向け、Python向けも開発中)、BeamパイプラインをApache Spark、Apache Flinkといった既存の分散処理バックエンドで実行できるランナーで構成される。高度な抽出により開発者はアプリケーションロジックに集中でき、バッチとストリーミングを同一のAPIに統合することで、任意の実行エンジンでジョブを動かすことができる。

 Googleが2014年に発表したMapReduceベースの「Google Cloud Dataflow」を土台とする。Google Cloud Dataflowは、バッチとストリーミングの両方のデータ処理パイプライン向けのプログラミングモデルなどの特徴を備えていた。Googleは2016年にGoogle Cloud DataflowをApache Software Foundationに寄贈、同年12月にApache Beamはトップレベルプロジェクトに昇格している。

 Apache Beam 2.3は、2017年5月に公開された2系の最新版。Java 8のサポートが行われ、ラムダ関数、StreamといったJava 8の特徴を活用できるようにコードとサンプルをリファクタリングしたという。

 SparkランナーがSpark 2系ベースとなった。これにより性能などのメリットを享受できるほか、将来Structured Streaming APIとの互換性も保たれるという。なお、Spark 1系はサポート対象外となった。FlinkランナーはFlink 1.4ベースとなっている。

 これまでHadoopFileSystem経由でサポートしてきたAmazon Web Services S3ファイルシステムを、ネイティブでサポートするようになった。

 FileIOを使ってファイルへの汎用の書き込みができるようになった。バージョン2.2のDynamicDestinations APIと同様の機能を持つが、使いやすさが改善されているという。これに合わせて、ファイルへの書き込みのDynamicDestinations API、FileBasedSinkは非推奨となった。

 Python SDKも強化し、Splittable DoFn APIが加わった。このほかにもSDK、ランナー、IOなどで細かな強化が加わっている。

Apache Beam
https://beam.apache.org/