はじめに
今回は、2010年に公開された論文「FlumeJava: Easy, Efficient Data-Parallel Pipelines」をもとにして、分散型のデータ処理基盤を提供する「FlumeJava」を紹介します。一般に、分散データ処理の方式には、バッチ型のデータ処理とストリーミング型のデータ処理があります。FlumeJavaは、バッチ型のデータ処理に特化した基盤となります。
ちなみに、Google Cloud Platform(GCP)では、分散データ処理サービスとして、Cloud Dataflowが提供されています。これは、今回紹介するFlumeJavaと、ストリームデータ処理基盤であるMillWheelの技術を統合して開発されたものです。今回は、FlumaJavaの解説を通して、Cloud Dataflowのバッチ処理機能の基礎を学びましょう。
MapReduceを汎用化したデータ処理モデル
FlumeJavaの仕組みを説明する前に、まずは、ユーザー視点でどのようなデータ処理ができるのかを整理しておきます。分散データ処理技術というとMapReduceが有名ですが、MapReduceの場合は、内部的に次の3つの処理が行われます。
•Map:すべてのデータに同一の処理を適用して(Key, Value)形式で結果を出力
•Shuffle:Keyの情報を用いてデータをグループ化
•Reduce:グループごとに同一の処理を適用
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。