SlideShare a Scribd company logo
1 of 25
Download to read offline
S4

2011/1/27 第19回あしたの研
塩谷沢生(インフォサイエンス株式会社)
S4とは
• Simple・Scalable・Streaming・System
• Yahoo!の検索広告最適化チームが開発した
 システムがベース
• 数年間の開発期間を経て、2010年10月にオープンソースとし
  公開
• MapReduceに”インスパイアされた”、
  しかし全く別の考え方によるデータ処理フレームワーク
おさらい・MapReduceの処理
• 入力と出力が一つずつ
• Map/Reduceの組で一つの処理を実現
• 全体の処理はマスターノードがコーディネイトする



         Map1
                key1= v1, v2...      Reduce

                                              Output
 Input
         Map2

                  key2= v1, v2 ...
                                     Reduce
         Map3
MapReduceの制約
• 入力と出力が一つずつでは不便
  o バッチ処理にせざるを得ない
  o 複数のクライアントからのデータをまとめる仕組が必須
• 投入スケジューリングが難しい
 o  データをリアルタイムに処理したい
 o  でも効率化のためにはまとめて投入したい
• データを渡す時、いちいち(Hadoopの場合)HDFSに
  書くのでは遅い
• MapReduceは投入したデータを全部処理しようとする
  o 高負荷の時は、レスポンスが遅れてしまう
S4のしくみ




• データが次々に「イベント」として飛んでくる
• イベントは「PE」が処理する
  o Processing Elementの略
• イベントを処理したPEは、またイベントを投げる
  o あるいはDBなどの外部のシステムに出力する
• いわゆる「アクターモデル」
Event
                               値
                      date     2011-01-27
                      Name     Taro
                      Action   Login


          例: ユーザの行動を表すイベント

• イベントは、属性-値の対のリスト
 o   プログラム上では、ただのJavaBeanオブジェクト
• イベントには、タイプがある
 o   PEは自分の対応するタイプのイベントだけを処理する
PE: Processing Element



• イベントを処理する基本単位
• ストリームを介してイベントを受入・送出する
  o ストリームは複数本あっても良い
• イベントを受け取る度に、何らかの処理をする
  o 処理結果は、新しいイベントとして送出
  o または、ファイルやDBに出力する
  o 基本的な処理(集計や名寄せ等)は予め用意されている
PEとキー属性: 単語カウント




• 例:単語の出現頻度をカウントするアプリを考える
 o アプリケーションは、単語を1つずつ抽出して
   イベントとして送る
 o S4は、WordCount PEというPEで単語イベントを受け取り
   出現回数を算える
PEはキー属性ごと




• S4では、属性の値ごとにPEを生成する
 o   この例では、単語の種類ごとにPEが用意される
• PEが注目する属性を、キー属性と呼ぶ
 o   DBで言う主キーのようなもの
• PEを実装する側も、複数の値が来る心配をしなくて良い
 o   この例では、イベントの到着回数 = 単語の出現頻度
PEの生成と削除




• 新しい単語が登場する度に、新しいPEが生成される
 o   PEの生成はコピーによる
 o   コピー元のことを、PEプロトタイプという
• PEには有効期限(TTL)がある
 o   一定期間使われていないPEは不活状態に
 o   不活状態のPEは、リソース不足の時に削除される
キー属性によるJoin




• 複数のタイプのイベントを受け取るPEでは、そのタイプご
  とにキー属性を指定する
 o   上の例でID matching PEは、以下をキーとしている
       UserActionイベントのaccount属性
       AuthResultのuserId属性
• つまり、同じキーを持つイベント同士が同じPEに集まる
PN: ProcessNode




• PEの生成削除、イベントの配信を一手に管理する
  o 処理可能なイベントの管理
  o 外部との通信・ノード間通信
  o フェイルオーバー
• S4のランタイムの基本単位
ProcessNode間での処理分散




• S4は非常に特徴的な分散ロジックを採用している
   o PEはキー属性値ごとに生成される
   o そのPEがどのProcessNodeに置かれるかは、
     キー属性値のハッシュで決まる
• つまり同じキーのイベントは必ず同じノードが処理する
S4アーキテクチャのメリット




• 同じキーのイベントは必ず同じノードが処理する
• メモリ上で処理を完結させられる
  o データを分散FSなどで共有しなくて良い
• 次にどこにイベントを渡すかを、自律的に判断できる
  o タスク割り当てを集中管理しなくて良い
キーレスイベント: 外部からのデータ入力




• 外部のシステムから最初に送るイベントは、キー属性がない
 o   キーレスイベントと呼ぶ
• 送り先のProcessNodeはラウンドロビンなどで適当に選ぶ
 o   クライアントライブラリがやってくれる(ようです)
外部システムへの出力



• PEにはイベントを受けとった時以外に、出力処理を行
  えるタイミングがある
 o   N個のデータを処理する度に出力
 o   N秒経過したら出力
フェイルオーバー
• PEが落ちた時
 o   ProcessNodeがイベントを再投入する
 o   PEの処理状態は失われてしまう
       しかたない
• ProcessNodeが落ちた時
 o   予備のProcessNodeをスタンドバイさせておく
 o   スタンドバイノードは、負荷分散にも使用する(らしい)
• S4全体はZooKeeperクラスタで管理
 o   物理ノード数は固定
Yahoo!チームのS4利用例(1)
• 広告システム
  o  検索時に埋め込んだURLと、あとで実際にクリックされたURL
     の突き合わせ
       これを効率的にやるのは意外と難しい
   o スパムやボットの検出
       広告の意味がないクリックを上手くフィルタリング
   o 検索結果に合わせて、システムを最適化
• …といった機能をS4で実装
→ クリックスルー率(CTR)を3%向上
広告検知システムのパフォーマンス
    Events per Second   Relative Error in CTR   Data Rate
    2000                0.0%                    2.6Mbps
    3644                0.0%                    4.9Mbps
    7268                0.2%                    9.7Mbps
    10480               0.4%                    14.0Mbps
    12432               0.7%                    16.6Mbps
    14900               1.5%                    19.9Mbps
    16000               1.7%                    21.4Mbps
    20000               4.2%                    26.7Mbps



• { 64bitCPU x 4, 16GBMemory } x 8台
• 1台で2個ずつ、計16個のProcessNodeを起動
• 実データを別環境で再投入して測定
Yahoo!チームのS4利用例(2)
• システムパラメータのチューニングに活用
 o   パラメータを変えながらシステムを稼動
 o   出力結果を分析して、より有効なパラメータにシステムを自動
     調整
 o   収益を0.25%、ユーザのクリック数を1.4%アップ
S4でのプログラミング
• 開発者の仕事 = イベントとPEのプログラム + 構成
• イベントのプログラミング
 o   単純なJavaBeansで良い
 o   TutorialなどではScalaを使用
• PEのプログラミング
 o   実装する処理は基本的に二つ
      processEvent():イベント取得時の処理
      output() : 出力の処理(N回ごと、またはN秒ごとの処理)
• 全体の構成は設定ファイルで記述
 o   つまり、PEという部品を用意しておいて
     S4で全体を繋ぎ合わせるイメージ
 o   部品(PE)の使い回しが非常に柔軟にできる
MapReduceとの比較(1/3)

• データにキー値があり、これで分散処理するのは同じ
 o MapReduce:
     Mapがキーを付け、Reduceが同じキーのデータを処理する
 o S4:
     イベントにはキーがあり、キーごとのPEが処理する
• データの投入の仕方
  o MapReduce
      単一のファイルを、各ノードが参照
      入力は一つ、出力も一つ
  o S4: キー値に基づいて、直接ノードに送る
      入力も出力も各PEが任意に行う
MapReduceとの比較(2/3)
• 処理の単位
  o MapReduce
      Map-Reduceの組で一つの処理
      Map-Reduceが全部終わるまで結果は分からない
  o S4
      処理ごとにPEがあり、PE同士がストリームで連携
      PEは定期的に出力を出せる
MapReduceとの比較(3/3)
• データの扱い
  o MapReduce
       HDFSなどの分散ファイルシステム上に置く
       障害時はそこから再投入
  o S4
       基本的にオンメモリ
       障害時は諦める
• 色々な意味で、MapReduceとは対照的な性質のフレームワーク
• 他に似たモデルを採用しているフレームワークとして、
  Microsoftの"Dryad"がある
  o 色々高機能('Simple'ではない)
S4の用途
• 大量のデータをリアルタイムに処理できるのが特徴
 o   急激なデータ量の変化に追随
 o   ある程度の不正確さを許容する寛容さが必要
• 向いている用途
 o   傾向分析・ランキング
 o   パラメータチューニング
 o   機械学習
• 不向きな用途
 o   厳密な集計
 o   監視システムなど

More Related Content

Viewers also liked

Ghost Town Szellemvárosok 03
Ghost Town Szellemvárosok  03Ghost Town Szellemvárosok  03
Ghost Town Szellemvárosok 03STREETVIEW
 
7 дүрэм 1
7 дүрэм 17 дүрэм 1
7 дүрэм 1chimeg2011
 
Canyon corridor boundaries and population by tract aubrey relf
Canyon corridor boundaries and population by tract aubrey relfCanyon corridor boundaries and population by tract aubrey relf
Canyon corridor boundaries and population by tract aubrey relfAubrey Relf
 
Tiger sec posting order
Tiger sec posting orderTiger sec posting order
Tiger sec posting orderdineshangirish
 
Production schedule
Production scheduleProduction schedule
Production scheduleastroboy19
 
Списание "Космос", 1962, бр.4
Списание "Космос", 1962, бр.4Списание "Космос", 1962, бр.4
Списание "Космос", 1962, бр.4Plamen Kok
 
How to Mitigate the Impact of the USPS
How to Mitigate the Impact of the USPSHow to Mitigate the Impact of the USPS
How to Mitigate the Impact of the USPSBilltrust
 
Fosera Plug and Play Solar Installation
Fosera Plug and Play Solar  InstallationFosera Plug and Play Solar  Installation
Fosera Plug and Play Solar InstallationKali Malikah
 
Henry Akafia: Bob's retirement strategy
Henry Akafia: Bob's retirement strategy Henry Akafia: Bob's retirement strategy
Henry Akafia: Bob's retirement strategy hakafia
 
물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...
물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...
물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...tnauswprndl ghb
 
Academic and skills international qualifications asiqual of abms switzerland...
Academic and skills international qualifications asiqual  of abms switzerland...Academic and skills international qualifications asiqual  of abms switzerland...
Academic and skills international qualifications asiqual of abms switzerland...Ailsaaa
 

Viewers also liked (14)

Ghost Town Szellemvárosok 03
Ghost Town Szellemvárosok  03Ghost Town Szellemvárosok  03
Ghost Town Szellemvárosok 03
 
7 дүрэм 1
7 дүрэм 17 дүрэм 1
7 дүрэм 1
 
Canyon corridor boundaries and population by tract aubrey relf
Canyon corridor boundaries and population by tract aubrey relfCanyon corridor boundaries and population by tract aubrey relf
Canyon corridor boundaries and population by tract aubrey relf
 
Tiger sec posting order
Tiger sec posting orderTiger sec posting order
Tiger sec posting order
 
Production schedule
Production scheduleProduction schedule
Production schedule
 
Paralect
ParalectParalect
Paralect
 
Списание "Космос", 1962, бр.4
Списание "Космос", 1962, бр.4Списание "Космос", 1962, бр.4
Списание "Космос", 1962, бр.4
 
How to Mitigate the Impact of the USPS
How to Mitigate the Impact of the USPSHow to Mitigate the Impact of the USPS
How to Mitigate the Impact of the USPS
 
China Syndrome
China SyndromeChina Syndrome
China Syndrome
 
Fosera Plug and Play Solar Installation
Fosera Plug and Play Solar  InstallationFosera Plug and Play Solar  Installation
Fosera Plug and Play Solar Installation
 
Henry Akafia: Bob's retirement strategy
Henry Akafia: Bob's retirement strategy Henry Akafia: Bob's retirement strategy
Henry Akafia: Bob's retirement strategy
 
물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...
물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...
물뽕 3방울이면 박근혜도 미친년으로 된다.【카톡:SKP999 & DDF11.KR】물뽕 50mg정품파는곳,물뽕 50mg구입,물뽕 50mg팝니...
 
Knowledgehut
KnowledgehutKnowledgehut
Knowledgehut
 
Academic and skills international qualifications asiqual of abms switzerland...
Academic and skills international qualifications asiqual  of abms switzerland...Academic and skills international qualifications asiqual  of abms switzerland...
Academic and skills international qualifications asiqual of abms switzerland...
 

Similar to S4

20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会Takahiro Iwase
 
プログラムの大海に溺れないために
プログラムの大海に溺れないためにプログラムの大海に溺れないために
プログラムの大海に溺れないためにZenji Kanzaki
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...Amazon Web Services Japan
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.jsishiki-takai
 
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入matsumoto_katsuhiko
 
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...Insight Technology, Inc.
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
 
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔Insight Technology, Inc.
 
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月VirtualTech Japan Inc.
 
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングクラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングShin Matsumoto
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
COD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメCOD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメwintechq
 
マイニング探検会#10
マイニング探検会#10マイニング探検会#10
マイニング探検会#10Yoji Kiyota
 
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallShinpei Ohtani
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返りSotaro Kimura
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Hitoshi Yoshida
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTeruo Kawasaki
 

Similar to S4 (20)

Apache geode at-s1p
Apache geode at-s1pApache geode at-s1p
Apache geode at-s1p
 
20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会
 
プログラムの大海に溺れないために
プログラムの大海に溺れないためにプログラムの大海に溺れないために
プログラムの大海に溺れないために
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.js
 
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入
 
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
 
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
 
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングクラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニング
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
COD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメCOD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメ
 
hbstudy#06
hbstudy#06hbstudy#06
hbstudy#06
 
マイニング探検会#10
マイニング探検会#10マイニング探検会#10
マイニング探検会#10
 
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 

More from あしたのオープンソース研究所   (14)

Apache Hive 紹介
Apache Hive 紹介Apache Hive 紹介
Apache Hive 紹介
 
Datomic&datalog紹介
Datomic&datalog紹介Datomic&datalog紹介
Datomic&datalog紹介
 
Red5
Red5Red5
Red5
 
Friendica_28th_AshitanoKen
Friendica_28th_AshitanoKenFriendica_28th_AshitanoKen
Friendica_28th_AshitanoKen
 
Apache UIMA
Apache UIMAApache UIMA
Apache UIMA
 
Flume
FlumeFlume
Flume
 
Gephi Quick Start (Japanese)
Gephi Quick Start (Japanese)Gephi Quick Start (Japanese)
Gephi Quick Start (Japanese)
 
Gephi Tutorial Visualization (Japanese)
Gephi Tutorial Visualization (Japanese)Gephi Tutorial Visualization (Japanese)
Gephi Tutorial Visualization (Japanese)
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
Cassandra v0.6-siryou
 
MongoDB
MongoDBMongoDB
MongoDB
 
Rails.20110405
Rails.20110405Rails.20110405
Rails.20110405
 
machine learning & apache mahout
machine learning & apache mahoutmachine learning & apache mahout
machine learning & apache mahout
 
20100831.あしたの研第14回座談会moses.スライド
20100831.あしたの研第14回座談会moses.スライド20100831.あしたの研第14回座談会moses.スライド
20100831.あしたの研第14回座談会moses.スライド
 
Cassandra 分散データベース
Cassandra 分散データベースCassandra 分散データベース
Cassandra 分散データベース
 

S4