デブサミ2014に行ってきた!シリーズ
2月13日のE5セッション
Stormで実現するビッグデータのリアルタイム処理プラットフォーム
〜ストリームデータ処理から機械学習まで〜
をメモメモ
■自己紹介
@takanorig
■今日のストーリー
・ビッグデータとリアルタイム
・Storm
・アーキテクチャ
■ビッグデータXリアルタイム
・60秒間
Twitter
Facebook
Skype
・なぜ、リアルタイムが必要なのか
Internet Of Things:モノのインターネット
・ビッグデータ関連プロダクトのパラダイム
2003
2004 MapReduce
2005 BigTable
2010 BigQuery
オープンソース
2007 Hadoop
2008 Hbase
2011 Twitter Storm
2013 Drill
→リアルタイム性が求められている
・これまでのビッグデータ処理
ログ解析
レコメンドエンジン
→主にバッチで処理する機能
・今もとめれれる
不正利用
センサーデータ
災害時
ユーザー直近行動のレコメンド
→リアルタイム処理
ビッグデータ処理の3つのタイプ(レイテンシー順)
・バッチ
・クエリー
・ストリーム
→要件に応じて単体Or組み合わせ
プロダクト
・バッチ:Hadoop
・インタラクティブクエリー:Drill,Impala。Stinger、Presto
・ストリームデータ処理:Storm、Spark Stream
ストリームデータ処理とは
連続的に発生し続けるデータ(ストリームデータ)をリアルタイムに
解析分析などの処理をおこないつづける
<<適用モデル>>
・大量データの事前処理(正確性)
・リアルタイムデータ集計
・センサーデータの集計/分析
・セキュリティ
■ストリームデータ処理を実現するStorm
Stormとは
分散し、耐障害性の高いリアルタイム処理
・Twitterがオープンソースとして公開した分散リアルタイム処理フレームワーク
・ストリームデータ処理を実現するための代表的なOSS
→コアエンジンはClojure、コンポーネントはJava,Scala,Rubyなど
・導入事例
ぐるーぽん、ありばば、
7つの特徴
1.簡単な統合(Integrates)
2.シンプルなAPI(SimpleAPI)
3.スケーラブル
4.耐障害性(フォルト・トレランス)
5.欠損のないデータ処理(Guarantees data processing)
6.複数の開発言語サポート(Use With any language)
7.簡単なデプロイ、運用(Easy to deploy and oparate)
Stormのクラスタ
nimbus Node→ZooKeeper→Supervisor→worker
パフォーマンスをあげるには、Workerを増やす
Storm トポロジー(全体)
・SpoutとBoltをつなぐ
ながれがStream
タプル:処理されるメッセージ
キーフィーチャー
1.ストリームグルーピング
2.Distributed RPC
3.トランザクション的
4.Trident:複数まとめて、CEPのような処理
5.メトリクス:内部情報とれる
パフォーマンス
0.8のとき、1秒間で300000タプル
164万(Twiotterで)
■ストリームデータ処理のアーキテクチャ
ポイント
1.大量データの収集方法
2.増減するストリームデータの対応
3.分散処理
4.中間データ
データ発生元
→データ受信部
→メッセージキューにためる
→データ処理部:
→RDBとかにいれる
※注意:標準偏差は分散できない
中間データはキャッシュとして保存
事例:
Infochimps社のリアルタイム分析サービス
Loggly社のログマネジメントサービス
データの振り分け、など
クラウド上でセンサーデータをリアルタイム処理
かさんどらでためて、データ集計
Something+Storm
YARN+Storm:Storm on YARN
amazon kinesis with storm
→kinesisは収集が中心
Stormでオンライン機械学習 Stream - ML
AcroMUSASHI Stream 1月30日リリース
→インメモリDBに格納
モチベーション
(1)イベント処理→CEP→機械学習
on ストリームデータ処理
(2)スケーラブル+高信頼性
特徴
スケーラビリティ
データ処理全体のリアルタイム処理
クラスタリング
はずれ値
変化店
バッチとリアルタイムのハイブリッド
ラムダアーキテクチャ
Batch Layer+Speed Layer→serving Layer
Hadoop+Storm→いんぱらとか
■まとめ
Stormはストリームデータ処理を簡単に実現するフレームワーク
AcroMUSASHI Stream使ってみてください
2月13日のE5セッション
Stormで実現するビッグデータのリアルタイム処理プラットフォーム
〜ストリームデータ処理から機械学習まで〜
をメモメモ
■自己紹介
@takanorig
■今日のストーリー
・ビッグデータとリアルタイム
・Storm
・アーキテクチャ
■ビッグデータXリアルタイム
・60秒間
Skype
・なぜ、リアルタイムが必要なのか
Internet Of Things:モノのインターネット
・ビッグデータ関連プロダクトのパラダイム
2003
2004 MapReduce
2005 BigTable
2010 BigQuery
オープンソース
2007 Hadoop
2008 Hbase
2011 Twitter Storm
2013 Drill
→リアルタイム性が求められている
・これまでのビッグデータ処理
ログ解析
レコメンドエンジン
→主にバッチで処理する機能
・今もとめれれる
不正利用
センサーデータ
災害時
ユーザー直近行動のレコメンド
→リアルタイム処理
ビッグデータ処理の3つのタイプ(レイテンシー順)
・バッチ
・クエリー
・ストリーム
→要件に応じて単体Or組み合わせ
プロダクト
・バッチ:Hadoop
・インタラクティブクエリー:Drill,Impala。Stinger、Presto
・ストリームデータ処理:Storm、Spark Stream
ストリームデータ処理とは
連続的に発生し続けるデータ(ストリームデータ)をリアルタイムに
解析分析などの処理をおこないつづける
<<適用モデル>>
・大量データの事前処理(正確性)
・リアルタイムデータ集計
・センサーデータの集計/分析
・セキュリティ
■ストリームデータ処理を実現するStorm
Stormとは
分散し、耐障害性の高いリアルタイム処理
・Twitterがオープンソースとして公開した分散リアルタイム処理フレームワーク
・ストリームデータ処理を実現するための代表的なOSS
→コアエンジンはClojure、コンポーネントはJava,Scala,Rubyなど
・導入事例
ぐるーぽん、ありばば、
7つの特徴
1.簡単な統合(Integrates)
2.シンプルなAPI(SimpleAPI)
3.スケーラブル
4.耐障害性(フォルト・トレランス)
5.欠損のないデータ処理(Guarantees data processing)
6.複数の開発言語サポート(Use With any language)
7.簡単なデプロイ、運用(Easy to deploy and oparate)
Stormのクラスタ
nimbus Node→ZooKeeper→Supervisor→worker
パフォーマンスをあげるには、Workerを増やす
Storm トポロジー(全体)
・SpoutとBoltをつなぐ
ながれがStream
タプル:処理されるメッセージ
キーフィーチャー
1.ストリームグルーピング
2.Distributed RPC
3.トランザクション的
4.Trident:複数まとめて、CEPのような処理
5.メトリクス:内部情報とれる
パフォーマンス
0.8のとき、1秒間で300000タプル
164万(Twiotterで)
■ストリームデータ処理のアーキテクチャ
ポイント
1.大量データの収集方法
2.増減するストリームデータの対応
3.分散処理
4.中間データ
データ発生元
→データ受信部
→メッセージキューにためる
→データ処理部:
→RDBとかにいれる
※注意:標準偏差は分散できない
中間データはキャッシュとして保存
事例:
Infochimps社のリアルタイム分析サービス
Loggly社のログマネジメントサービス
データの振り分け、など
クラウド上でセンサーデータをリアルタイム処理
かさんどらでためて、データ集計
Something+Storm
YARN+Storm:Storm on YARN
amazon kinesis with storm
→kinesisは収集が中心
Stormでオンライン機械学習 Stream - ML
AcroMUSASHI Stream 1月30日リリース
→インメモリDBに格納
モチベーション
(1)イベント処理→CEP→機械学習
on ストリームデータ処理
(2)スケーラブル+高信頼性
特徴
スケーラビリティ
データ処理全体のリアルタイム処理
クラスタリング
はずれ値
変化店
バッチとリアルタイムのハイブリッド
ラムダアーキテクチャ
Batch Layer+Speed Layer→serving Layer
Hadoop+Storm→いんぱらとか
■まとめ
Stormはストリームデータ処理を簡単に実現するフレームワーク
AcroMUSASHI Stream使ってみてください