グーグルのクラウドを支えるテクノロジー > 第9回 MapReduceをバックエンドにした分散型データ処理基盤 FlumeJava
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
CTC教育サービスはコラム「グーグルのクラウドを支えるテクノロジー > 第9回 MapReduceをバックエンドにした分散型データ処理基盤 FlumeJava 」を公開しました。
はじめに
今回は、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:グループごとに同一の処理を適用
この続きは以下をご覧ください
http://www.school.ctc-g.co.jp/columns/nakai2/nakai209.html
ソーシャルもやってます!