Quantcast
Channel: ウィリアムのいたずらの、まちあるき、たべあるき
Viewing all articles
Browse latest Browse all 7268

ビッグデータのリアルタイム処理プラットフォーム−Storm

$
0
0
デブサミ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使ってみてください

Viewing all articles
Browse latest Browse all 7268

Trending Articles