リアルタイムなHadoop? 「Real-Time MapReduce」を実現するS4、オープンソースとしてYahoo!が公開

2010年11月4日

米Yahoo!は、大規模データの分散処理を実現するMapReduceをリアルタイムに行うソフトウェア「S4」を、オープンソースとして公開しました。

s4: distributed stream computing platform

MapReduceを実行するソフトウェアとして、オープンソースの「Hadoop」がありますが、Hadoopはあらかじめジョブを定義して投入するバッチ処理を前提としていました。

S4は、データをキーとバリューのペアで構成されるストリームデータとして非同期に受け取ることができ、処理結果もキーバリューのペアで構成されたストリームデータとして出力するようになっているとのこと。

この非同期なストリームデータによる入出力が、リアルタイムなMapReduceを実現するフレームワークとしてのS4の特徴といえます。

リアルタイムなMapReduceで何ができる?

リアルタイムなMapReduceにはどのような用途が考えられるのでしょうか? S4の公開を表明したYahoo! Labsの記事「Project: Real-Time MapReduce」では、検索エンジンでの例が2つ紹介されています。

1つは、検索広告のパーソナライゼーション。入力履歴から利用者の意図を推測し、それに合った広告を選択して表示することで、無駄なインプレッションを減らし、クリックレートを劇的に向上できたとのこと。

もう1つは、有名人が死亡するなどの突発的な事件で特定の検索内容が急上昇した場合、それをすぐに察知し、検索結果を見合ったものにする、といったことが挙げられています。

大量のデータをリアルタイムに処理するアプリケーションとしては、自動車や気象センサーといったセンサーからの大量の情報を分析してリアルタイムに渋滞を予測したり、天気予報に応用するといった例や、小売店のPOSデータをリアルタイムに分析して配送計画を動的に立てたり、フラッシュマーケティングに用いる、といったことも考えられそうです。

コア部分はHadoop同様にJavaで開発

S4のプロジェクトページでは、S4を次のように紹介しています。

S4 is a general-purpose, distributed, scalable, partially fault-tolerant, pluggable platform that allows programmers to easily develop applications for processing continuous unbounded streams of data.

S4は多目的、分散処理、スケーラブル、フォールトトレラントでプラグイン対応のプラットフォームです。開発者は、連続的で区切りのないストリームデータ処理のアプリケーションを容易に構築できます。

コア部分はHadoop同様にJavaで作られており、データの入出力部分はレガシーシステムを含むさまざまなアプリケーションと連係可能。すでにYahoo!ではS4を運用しており、十分実績があると説明されています。

あわせて読みたい

Java 機械学習・AI Hadoop MapReduce Yahoo! オープンソース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本