グーグルのクラウドを支えるテクノロジー > 第9回 MapReduceをバックエンドにした分散型データ処理基盤 FlumeJava

2017年1月18日 8:12

※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。
また、編集部はこの内容について正確性を保証できません。

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

この記事のキーワード

この記事をシェアしてほしいパン!

人気記事トップ10

人気記事ランキングをもっと見る