デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~

16,314 views

Published on

Published in: Technology
0 Comments
79 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
16,314
On SlideShare
0
From Embeds
0
Number of Embeds
797
Actions
Shares
0
Downloads
311
Comments
0
Likes
79
Embeds 0
No embeds

No notes for slide

デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~

  1. 1. 13-E-5 #devsamiE 2014/02/13 Acroquest Technology 株式会社 鈴木 貴典 ~ストリームデータ処理から機械学習まで~
  2. 2. 自己紹介 { “氏名” “所属” “Twitter” “Facebook” “分野” : : : : : ”鈴木 貴典” “Acroquest Technology Co., Ltd.” “@takanorig” “https://www.facebook.com/takanorig” [“SEPG”, “Testing”, “Management”, ”Framework”, ”Platform”] } Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2
  3. 3. 本日のStory #1 ビッグデータ×リアルタイム #2 ストリームデータ処理を実現するStorm #3 ストリームデータ処理のアーキテクチャ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
  4. 4. Story #1 ビッグデータ × リアルタイム Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
  5. 5. In 60 seconds
  6. 6. http://blog.qmee.com/qmee-online-in-60-seconds/
  7. 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
  8. 8. 1. なぜ、リアルタイムが必要なのか? ビッグデータ関連プロダクトのパラダイム Google GFS論文発表 (2003) Google GigTable論文発表 (2006) Google MapRedue論文発表 (2004) 2002 2004 2006 Hadoop First Release (2007) 2008 Google Percolator・ Dremel(BigQuery) 論文発表 (2010) 2010 HBase First Release (2008) 2012 Twitter Storm公開 (2011) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2014 Drill公開 (2013) リアルタイム性が 求められる時代へ 8
  9. 9. 2. ビッグデータ × リアルタイム これまでのビッグデータ処理 ① ログ解析によるサイトやサービス に対するアクセス分析 ② 大量データに対する処理の 時間短縮 ③ レコメンドエンジンを利用した サービス性向上 主にバッチで 処理する領域 今後求められるビッグデータ処理 ① 不正利用・不正アクセス検知 ② センサーデータを利用した 交通状況や自然状況の分析 ③ 緊急災害時の対応 ④ ユーザの直近の行動に基づく サービス性向上 リアルタイム性が 求められる領域 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9
  10. 10. 3. ビッグデータ処理の3つのタイプ Batch Query Stream 高 低 Latency Copyright © Acroquest Technology Co., Ltd. All rights reserved. 10
  11. 11. 3. ビッグデータ処理の3つのタイプ 要件に応じて、単体 or 組み合わせて利用 バッチ処理 インタラクティブ クエリ処理 ストリームデータ 処理 実行タイミング ユーザの指定や 定期的な実行 ユーザの指定や 定期的な実行 常時連続実行 処理単位 蓄積データを 一括で処理 蓄積データを 一括で処理 1~少数の フローデータを処理 実行時間 分~時間 秒~分 ミリ秒~秒 処理モデル MapReduce クエリ, OLTP Stream processing Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11
  12. 12. 3. ビッグデータ処理の3つのタイプ タイプごとの代表的なプロダクト バッチ処理 ストリームデータ 処理 CDH: Cloudera's Distribution Including Apache Hadoop Apache Apache Drill Storm Cloudera Hadoop HDP: インタラクティブ クエリ処理 Apache Impala Spark Streaming Hortonworks Hortonworks Data Platform Stinger Facebook Presto Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12
  13. 13. 4. ストリームデータ処理とは? 連続的に発生し続けるデータ(ストリームデータ)を リアルタイムに、解析・分析等の処理を行い続ける ストリームデータ処理 スマートフォン センサー 監視や通知用 デバイス 連続的なデータ 結果を常時出力 ダッシュボード 分析ツール ログ SNS データストア Copyright © Acroquest Technology Co., Ltd. All rights reserved. 13
  14. 14. 5. ストリームデータ処理の適用モデル リアルタイム データ集計 大量データの 事前処理 • これまで、バッチとし て集計していたものを、 リアルタイムに集計。 • 大量データの事前整形 /フィルタリング/マ ッチング等の処理を行 う。 • ユーザの行動やアクセ ス状況に基づいたリア ルタイムの判断/サー ビスを可能にする。 • 必要(正確)なデータ だけを扱えるようにす る。 センサーデータの 集計/分析 セキュリティ • 大量のセンサーデータ を集計/分析。 • 近年、環境/ヘルスケ ア/ウェアラブルなど のセンサーやデバイス の情報を扱うケースも 増えている。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. • ID不正利用、なりすま しなどの異常行動を瞬 時に検知。 • 外部からの攻撃に対し て、リアルタイムに対 応することが可能。 14
  15. 15. Story #2 ストリームデータ処理を実現する Storm Copyright © Acroquest Technology Co., Ltd. All rights reserved. 15
  16. 16. Stormとは? Distributed and fault-tolerant realtime computation System 分散し、耐障害性の高い、 リアルタイム処理システム Copyright © Acroquest Technology Co., Ltd. All rights reserved.
  17. 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
  18. 18. 2. Stormの導入事例(利用企業) http://storm.incubator.apache.org/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 18
  19. 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. 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. 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. 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. 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
  24. 24. 7. Stormのパフォーマンス 300,000 Tuples/sec (on EC2 c1.xlarge × 1) 1,640,000 Tuples/sec (on the Node of Twitter Cluster) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 24
  25. 25. Story #3 ストリームデータ処理の アーキテクチャ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 25
  26. 26. 1. アーキテクチャの 検討ポイント ① 大量データの 収集方法 ② 増減する ストリームデータへの 対応 ③ 分散処理、 および、分散の単位 ④ 中間データの扱い 26
  27. 27. 2. ストリームデータ処理のアーキテクチャ 基本的なアーキテクチャ データ発生元 データ受信部 データ処理部 データ活用部 通信 データ 取得 センサー データ データ受信 解析 メッセージ キュー 出力 解析 出力 取得 ログ ユーザ通知 取得 SNS データ ダッシュボード 分析ツール データ収集 保存 永続化用 データストア 解析結果用 データストア キャッシュ用 データストア Copyright © Acroquest Technology Co., Ltd. All rights reserved. 27
  28. 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. 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. 30. 3. 事例 ③クラウド上でセンサーデータのリアルタイム判定+集計 ① Cloudn(クラウド・エヌ)上で、センサーデータをリアルタイムに収集・処理 ② リアルタイムで、データの閾値判定処理と一定間隔での集計処理を、常時並列実行 センサー群 結果の出力 イベント 受信 Storm 取得 リアルタイム 閾値判定 判定 通知 解析 RabbitMQ 保存 取得 保存 ストリーム データ集計 グラフ表示 一時 データ保存 表示用 データ保存 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 30
  31. 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. 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. 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
  34. 34. 5. Stormでオンライン機械学習 Stream-ML 学習結果をオンラインで更新しながら ストリームデータを解析・評価 通信 データ センサー データ ストリーム データ クラスタリング 異常値検知 評価結果 Stream-ML ログ 学習結果の オンライン更新 SNS データ インメモリDB Copyright © Acroquest Technology Co., Ltd. All rights reserved. 34
  35. 35. 5. Stormでオンライン機械学習 Stream-ML モチベーション ①イベント処理 ⇒ CEP ⇒ 機械学習 on ストリームデータ処理 ②スケーラブル + 高信頼性で、リアルタイム系で 使える機械学習のための機能が欲しかった ③チャレンジ!!(できたらカッコ良さそう) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 35
  36. 36. 5. Stormでオンライン機械学習 Stream-ML 特長 ① スケーラビリティを備えた高速分散処理 ② 機械学習のアルゴリズム単体ではなく、 データ分析全体のリアルタイム分散処理が可能 対応済みのアルゴリズム クラスタリング (K-means) 外れ値検知 (LOF) 変化点検出 (ChangeFinder) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 36
  37. 37. 6. バッチとリアルタイムのハイブリッド ラムダアーキテクチャ(バッチ×ストリーム) All Data Precomputed Information Batch recompute Data Speed Layer Process Stream Incremented Information Serving Layer Batch View Batch View Realtime View Merge Batch Layer Query Realtime View RealTime increment Copyright © Acroquest Technology Co., Ltd. All rights reserved. 37
  38. 38. 6. バッチとリアルタイムのハイブリッド ラムダアーキテクチャ(バッチ×ストリーム) All Data Precomputed Information Batch recompute Serving Layer Batch View Batch View ElephantDB Data Realtime View Speed Layer Process Stream Incremented Information Realtime View Merge Batch Layer (MapReduce) (HDFS) Query (Storm) (Impala) RealTime increment (Storm) (Storm) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 38
  39. 39. 本日のまとめ 1. ビッグデータの処理は、リアルタイム性を求められる時代に なってきた • ストリームデータ処理は、低レイテンシで大量のデータを 常時処理する方式であり、リアルタイムの処理に向く 2. Stormは、ストリームデータ処理を簡単に実現するための フレームワーク 3. Stormを利用したストリームデータ処理は、応用範囲が広い • • 処理のパイプ、バッチ処理との連係、機械学習なども可能にする AcroMUSASHI Stream-ML 使ってみてください Copyright © Acroquest Technology Co., Ltd. All rights reserved. 39
  40. 40. Thank you Infrastructures Evolution Copyright © Acroquest Technology Co., Ltd. All rights reserved. 40

×