More Related Content
Similar to デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
Similar to デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~ (20)
More from Takanori Suzuki
More from Takanori Suzuki (8)
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
- 7. 1. なぜ、リアルタイムが必要なのか?
ここに注目
Internet Of Things
(IoT)
http://www.businessinsider.com/decoding-smartphone-industry-jargon-2013-11
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
7
- 9. 2. ビッグデータ × リアルタイム
これまでのビッグデータ処理
①
ログ解析によるサイトやサービス
に対するアクセス分析
②
大量データに対する処理の
時間短縮
③
レコメンドエンジンを利用した
サービス性向上
主にバッチで
処理する領域
今後求められるビッグデータ処理
① 不正利用・不正アクセス検知
② センサーデータを利用した
交通状況や自然状況の分析
③ 緊急災害時の対応
④ ユーザの直近の行動に基づく
サービス性向上
リアルタイム性が
求められる領域
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
9
- 11. 3. ビッグデータ処理の3つのタイプ
要件に応じて、単体 or 組み合わせて利用
バッチ処理
インタラクティブ
クエリ処理
ストリームデータ
処理
実行タイミング
ユーザの指定や
定期的な実行
ユーザの指定や
定期的な実行
常時連続実行
処理単位
蓄積データを
一括で処理
蓄積データを
一括で処理
1~少数の
フローデータを処理
実行時間
分~時間
秒~分
ミリ秒~秒
処理モデル
MapReduce
クエリ, OLTP
Stream processing
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
11
- 14. 5. ストリームデータ処理の適用モデル
リアルタイム
データ集計
大量データの
事前処理
• これまで、バッチとし
て集計していたものを、
リアルタイムに集計。
• 大量データの事前整形
/フィルタリング/マ
ッチング等の処理を行
う。
• ユーザの行動やアクセ
ス状況に基づいたリア
ルタイムの判断/サー
ビスを可能にする。
• 必要(正確)なデータ
だけを扱えるようにす
る。
センサーデータの
集計/分析
セキュリティ
• 大量のセンサーデータ
を集計/分析。
• 近年、環境/ヘルスケ
ア/ウェアラブルなど
のセンサーやデバイス
の情報を扱うケースも
増えている。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
• ID不正利用、なりすま
しなどの異常行動を瞬
時に検知。
• 外部からの攻撃に対し
て、リアルタイムに対
応することが可能。
14
- 17. 1. Stormとは?
1. Twitter社がオープンソースとして公開した
分散リアルタイム処理フレームワーク
元々は、Twitterの分析を行っていたBackType社が開発
Nathan Marz 氏 が Lead Engineer
Twitter社がBackType社を買収し、OSSとして公開(2011/09/11)
2. ストリームデータ処理を実現するための代表的なOSS
コアエンジンはClojure、コンポーネントはJavaで実装されている
コンポーネント部分は、Scala, Rubyなど、他の言語での実装も可能
3. 2013/09/18より、Apache Incubaterとして
開発が進められている
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
17
- 19. 3. Stormの7つの特長
1. Integrates
簡単な統合
メッセージキューや、NoSQL/DBと簡単に連係して処理することが可能。
2. Simple API
シンプルなAPI
StormのAPIは非常にシンプルであり、複雑な処理を特に意識することなく、
分散リアルタイムシステムの開発可能。
3. Scalable
スケーラブル
Stormは複数のマシンで構成されるクラスタ上で並列分散的に動作し、膨大な数のメッセ
ージに対しても低レイテンシを維持しつつ、スケールする。
4. Fault tolerant
耐障害性
障害が発生し、処理中のノードがダウンした場合でも、Stormは必要に応じてタスクの再
割り当てやノードの再起動を行い、処理が完全に停止してしまうようなことがない。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
19
- 20. 3. Stormの7つの特長
5. Guarantees data processing
欠損のないデータ処理
何らかの理由により、データの処理に失敗したり、タイムアウトが発生したりした場合で
も、Stormはそれを検知し、再処理するしくみを有している。
この機構により、すべてのメッセージが処理されることを担保可能。
6. Use with any language
複数の開発言語サポート
Storm自体はClojureで実装されているが、ユーザが開発するアプリケーション部分は、
様々な言語で開発可能である。
Java, Scala, Ruby, Python, Perl, JavaScript, PHPなど、多くの言語をサポート。
7. Easy to deploy and operate
簡単なデプロイ・運用
Stormは簡単にデプロイし、動作させることができ、システム構成もわずかな設定で変更。
Amazon EC2などのクラウド環境でも動作させられる。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
20
- 21. 4. Storm Cluster(Physical View)
Supervisor Node
Zookeeper:
クラスタの協調処理
• 各ノードの状態管理
Nimbus Node
Nimbus
1
1..*
Supervisor
Zookeeper
Worker
Worker:
Supervisor
タスクを実行するプロセス
• Topologyのサブセットの実行
Zookeeper
Supervisor
Worker
Numbus:
Masterノード
• Workerプロセスへ
のタスクの割り振り
• Workerプロセスの
モニタリング
Zookeeper
1
1..*
Supervisor
Supervisor:
Slaveノード
• タスクのアサイン待ち受け
• Workerプロセスの起動/停止
Executer
Worker Process
Executer:
Worker上で動作する
処理スレッド
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
21
- 22. 5. Storm Topology(Logical View)
Bolt:
Spout:
StreamからTupleを
受信し、変換・加工する
Streamのデータソース
としてTupleを送出する
Bolt
Spout
Bolt
Bolt
Spout
Bolt
Stream:
Bolt
途切れずに連続するTupleの流れ
Tuple:
Stormで処理されるメッセージを
保持する、単一のデータ
Topology
Spout+Boltからなるネットワーク構造。Stormにおける処理の単位となる
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
22
- 23. 6. Storm Key features
1. Stream groupings
ストリームの複数種類のグルーピング方法を提供している。
2. Distributed RPC
クエリ的に、ストリーム処理を実行する。アドホック、インタラクティブな実行。
3. Transactional
トランザクション的なストリーム処理も実行可能。
4. Trident
複数のTupleに対しての処理を可能にする。関数的な呼び出しで、集計・マージ・ジョイン
といった、CEP(Complex Event Processing)のような処理も簡単に実現可能。
5. Metrics
ストーム内部のメトリクス情報を取得可能。動作状況や異常の発生などの情報が分かりやす
く得られる。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
23
- 28. 3. 事例 ①Infochimps社のリアルタイム分析サービス
① 政府系からビジネス系データまで、60,000を超える膨大なデータを提供する
Infochimps社のリアルタイム分析プラットフォームとして利用されている。
② Storm+Kafka をメインに、ストリームデータ処理をクラウド上で実現しており、
ビッグデータの提供を行っている。
http://blog.infochimps.com/2012/10/30/next-gen-real-time-streaming-storm-kafka-integration/
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
28
- 29. 3. 事例 ②Loggly社のログマネジメントサービス
① クラウド・ベースでのログマネジメントを行っているLoggly社の第二世代
プラットフォームを、Kafka+Storm+Elasticsearchを利用して構築。
② Stormを利用して、イベント・パイプラインを構築。ログのリアルタイムでの
収集+インデックス作成に役立っている。
http://www.slideshare.net/AmazonWebServices/infrastructure-at-scale-apache-kafka-twitter-storm-elastic-searcharc303-aws-reinvent-2013
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
29
- 30. 3. 事例 ③クラウド上でセンサーデータのリアルタイム判定+集計
① Cloudn(クラウド・エヌ)上で、センサーデータをリアルタイムに収集・処理
② リアルタイムで、データの閾値判定処理と一定間隔での集計処理を、常時並列実行
センサー群
結果の出力
イベント
受信
Storm
取得
リアルタイム
閾値判定
判定
通知
解析
RabbitMQ
保存
取得
保存
ストリーム
データ集計
グラフ表示
一時
データ保存
表示用
データ保存
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
30
- 31. 4. Something+Storm
Storm on YARN
① Hadoop 2.0(YARN Based)とStormとの組み合わせ
② Hadoopが管理するノード上で、Stormクラスタを動作させる
③ HDFSやHBaseのデータリソースを、Stormから簡単に利用できる
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
31
- 32. 4. Something+Storm
Amazon Kinesis with Storm
① 「Amazon Kinesis Storm Spout」を利用して、Kinesisで収集・加
工したストリームデータを、Stormクラスタに受け渡して処理可能
② Kinesis自体、分散してのストリームデータ処理が可能だが、Kinesis
だけでは実現しにくい複雑な処理や、既存のStormクラスタとの
連係が可能
Bolt
Bolt
Amazon
Kinesis
Bolt
Bolt
Amazon
Kinesis
Storm Spout
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
32
- 33. 5. Stormでオンライン機械学習 Stream-ML
AcroMUSASHI Stream:
Stormをベースとした
ストリームデータの分散処理プラットフォーム
• Stormをより簡単に使いこなすためのエコシステム
• データの収集/受信、データの格納までをシームレスに連結
• 分散システムの立ち上げをより迅速に
https://github.com/acromusashi
2014/01/30
オンライン機会学習
ライブラリ
AcroMUSASHI
Stream-ML
機械学習
をリリース!
Storm
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
With
33
- 36. 5. Stormでオンライン機械学習 Stream-ML
特長
① スケーラビリティを備えた高速分散処理
② 機械学習のアルゴリズム単体ではなく、
データ分析全体のリアルタイム分散処理が可能
対応済みのアルゴリズム
クラスタリング
(K-means)
外れ値検知
(LOF)
変化点検出
(ChangeFinder)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
36