Skip to main content
QUICK REVIEW

[論文レビュー] Muppet: MapReduce-Style Processing of Fast Data

Wang Lam, Lu Liu|arXiv (Cornell University)|Aug 21, 2012
Cloud Computing and Resource Management参考文献 12被引用数 19
ひとこと要約

本論文では、SNSフィードなどの高速データストリームの低遅延でスケーラブルな処理を可能にする、MapReduce風のフレームワークMuppetを提案する。MapUpdateと呼ばれるストリーム処理モデルを導入し、'スレート'と呼ばれる一等級の分散型で永続化された状態構造を用いて、状態保持処理における継続的な要約を維持することで、コンmodityクラスタ上で効率的でフェイルセーフなリアルタイム分析を実現する。

ABSTRACT

MapReduce has emerged as a popular method to process big data. In the past few years, however, not just big data, but fast data has also exploded in volume and availability. Examples of such data include sensor data streams, the Twitter Firehose, and Facebook updates. Numerous applications must process fast data. Can we provide a MapReduce-style framework so that developers can quickly write such applications and execute them over a cluster of machines, to achieve low latency and high scalability? In this paper we report on our investigation of this question, as carried out at Kosmix and WalmartLabs. We describe MapUpdate, a framework like MapReduce, but specifically developed for fast data. We describe Muppet, our implementation of MapUpdate. Throughout the description we highlight the key challenges, argue why MapReduce is not well suited to address them, and briefly describe our current solutions. Finally, we describe our experience and lessons learned with Muppet, which has been used extensively at Kosmix and WalmartLabs to power a broad range of applications in social media and e-commerce.

研究の動機と目的

  • 従来のMapReduceが高速度のリアルタイムデータストリーム処理において抱える制限を解消すること。
  • 開発者がマップ関数とアップデート関数の単純な手続き的ワークフローで高速データアプリケーションを記述できるフレームワークを設計すること。
  • コンmodityハードウェアクラスタ上で継続的データストリームを低遅延かつ高スケーラビリティで処理できること。
  • 開発者が状態の永続化や分散を手動で処理する必要がないように、'スレート'——分散型で永続化され、継続的に更新されるデータ構造——を用いてアプリケーション状態を明示的かつ透明に管理すること。

提案手法

  • マッパーとアップデータがデータストリーム上で動作するストリーム処理モデルであるMapUpdateを導入し、データを変換・分割・統合する。
  • データの履歴を要約する『スレート』——一等級の分散型で永続化された状態構造——を採用し、アップデータのメモリとして機能させる。
  • 複数のマップ関数とアップデート関数を組み合わせて複雑な状態保持型データ処理パイプラインを構築できるワークフロー型実行モデルを設計する。
  • イベント処理をマシンクラスタ全体に分散し、状態(スレート)をノード間でシャーディングし、フェイルセーフのためのキーバリュー・ストアに永続化する。
  • 障害発生時には、永続化されたストレージからスレート状態を再初期化し、チェックポイントから再処理することでフェイルセーフを実現する。
  • スレートを読み取るプルベースのメカニズムを採用し、処理中に最新の状態値に効率的にアクセス可能にする。

実験結果

リサーチクエスチョン

  • RQ1低遅延かつ高スケーラビリティで高速データストリームを処理できるように、MapReduce風のプログラミングモデルを効果的に適合させることは可能か?
  • RQ2開発者が永続化や分散を手動で処理する必要がない状態保持型分散ストリーム処理システムにおいて、アプリケーション状態を効率的かつ透明に管理する方法は何か?
  • RQ3MapReduceとリアルタイムデータ向けに設計されたストリーム処理フレームワークとの間には、どのような主要なアーキテクチャ的差異があるか?
  • RQ4分散環境において、状態保持型処理を効率的に複雑なスケーラブルなデータ処理ワークフローに組み合わせる方法は何か?
  • RQ5ストーミングシステムにおいて、一等級の永続化された状態(スレート)を使用する場合のパフォーマンスと信頼性のトレードオフは何か?

主な発見

  • Muppetは、Twitter や Foursquare のフィードなどの高速データストリームの低遅延かつ高スループット処理を効果的にサポートしており、実稼働ワークロードで1秒未塔のエンドツーエンド遅延を達成している。
  • スレートを一等級の分散型で永続化された状態構造として用いることで、効率的でフェイルセーフな状態管理が可能となり、開発者の負担が軽減され、システムの信頼性が向上した。
  • 本フレームワークは、KosmixおよびWalmartLabsで広範に使用され、SNSやEC分野の多様なリアルタイムアプリケーションを駆動しており、実用的なスケーラビリティと開発生産性の両立を実証した。
  • MapUpdateのワークフロー型モデルにより、単純なマップ関数とアップデート関数を組み合わせて複雑な状態保持型データ処理パイプラインを構築でき、表現力豊かでモジュール性の高いストリーム処理が可能になった。
  • Muppetの設計は、GPU や RDMA といった専用ハードウェアに依存せず、標準のイーサネットを備えたコンmodityクラスタでも構築可能でありながら、低遅延性能を達成している。
  • 低レベルの状態管理を抽象化することで、従来のストリーム処理システムに比べて開発生産性が向上し、専用システムと同等のパフォーマンスを維持している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。