SlideShare a Scribd company logo
Advanced Tech Night No.04

          Twitterの
     リアルタイム分散処理システム

              Storm
                   入門
                                      2012/03/01
                            Acroquest Technology
                                        鈴木 貴典
自己紹介


 氏名      : 鈴木 貴典
 所属      : Acroquest Technology
 Twitter : @takanorig


 本職は SEPG      (Software Engineering Process Group)

  ★ プロセスとか、品質とか、マネジメントとか・・・
  ★ その一方、OSSの開発・調査とか、フレームワークの開発
    なんかもしています
    (たぶん、めずらしい存在です)

                                                       1
                       Advanced Tech Night
目次

1. Stormとは?               6. Stormクラスタ
2. Stormの6つの特徴            7. Topology
3. Stormが生まれた             8. TaskとWorker
   背景                     9. Stream Groupings
4. Stormができること?           10.実行イメージ
5. 3つの基本                  11.実行モード
   ユースケース                 12.Hadoopとの比較




                                                2
              Advanced Tech Night
Storm とは?
 分散し、フォールトトレラントな
リアルタイム処理フレームワーク
1. Stormとは?
1.    元々は、米BackType社が開発
      Twitter社がBackType社を買収し、オープンソースとして公開(2011/09/19)
      Twitterでは、つぶやきのリアルタイム解析に利用

2.    一般的には、
       「CEP(Complex Event Processing):複合イベント処理」
      のシステムに分類される
      同分類のOSSプロダクト
        →Yahoo S4、 Esper、Streambase、HStreaming など

3.    連続的に発生するデータを、継続的に処理をし続ける

4.    コアプロセスはClojure、コンポーネントはJavaで実装されている
      ノード間の通信にThriftを利用しているので、他の言語でも開発可能




                                                         4
                             Advanced Tech Night
2. Stormの6つの特徴

1. Extremely broad set of use cases
   非常に幅広いユースケース
    •「ストリーム処理」・・・ メッセージ処理や、データベースのリアルタイム更新
    •「継続的な処理」・・・ 連続的なクエリの実行や、クライアントへ処理結果を
                  ストリーミングで表示する、などの継続的な計算
    •「分散RPC」・・・ 即座に処理する検索クエリのような激しいクエリの並列処理
    など、Stormの基本機能は、非常に多くのユースケースに対応します。

2. Scalable
   拡張性
    Stormは、膨大なメッセージの処理に対してもスケールします。
    Topology拡張のためにしなければならないことは、マシンの増設、並列処理数
    を増やすだけです。
    例として、Stormの最初のアプリケーションの1つにおいて、10ノードのクラスタ
    上で、毎秒、1,000,000メッセージと数百回のデータベース呼び出し処理を実
    現してます。
    クラスタ調整のためにZookeeperと組み合わせて使えば、さらに大きなサイズ
    のクラスタへスケールすることもできます。
                                               5
                         Advanced Tech Night
2. Stormの6つの特徴

3. Guarantees no data loss
   データ欠損がないことの保証
    リアルタイム処理システムは、データが正常に処理されることを強く保証
    しなければなりません。データが欠損するシステムは、非常に限られた
    ユースケースでしか使用できません。
    Stormは、あらゆるメッセージが処理されることを保証します。そして、これが
    S4などの他のシステムと大きく異なる点です。

4. Extremely robust
   堅牢性
    扱いが難しいHadoopのようなシステムと違って、Stormクラスタは、
    簡単に動作します。 ユーザーができるだけ苦労せず、Stormクラスタを
    動かせるようにする、というのは、 Stormプロジェクトの明確なゴールです。




                                             6
                      Advanced Tech Night
2. Stormの6つの特徴

5. Fault-tolerant
   耐障害性
    データ処理中に障害が起きた場合、Stormは必要に応じてタスクの再割当を
    します。Stormは、データ処理をし続けること(またはデータ処理を停止させる
    まで継続すること)を保証します。


6. Programming language agnostic
   プログラミング言語非依存
    堅牢で拡張性のあるリアルタイム処理は、一つのプラットホームに限定される
    べきではありません。StormのTopologyと処理コンポーネントは、様々な言語
    で定義でき、どんな開発者にとっても利用しやすくなっています。




                                                7
                        Advanced Tech Night
3. Stormが生まれた背景

大規模分散処理と言えば・・・                 Storm以前の
     Hadoop                    リアルタイム処理は・・・
                                 ・キューとワーカーによる処理
                                  →メッセージの取得
                                  →DBの更新
                                  →新たなメッセージをキューに登録


 しかしながら、Hadoopで、                         ① 退屈な仕事
  リアルタイムの処理を                             ② 脆弱
 実現するのは困難であった                            ③ 拡張が大変



                   Storm
   リアルタイム   分散     データの保証                耐障害性   拡張性

                                                      8
                   Advanced Tech Night
Stormができること?




                      9
Advanced Tech Night
分散処理 のみ
                      10
Advanced Tech Night
4. Stormができること?

 リアルタイムでの
  分散処理の
 実行のみに特化


  シンプル
   かつ
   強力
                  11
5. 3つの基本ユースケース

Stormの処理は以下の3つのユースケースが基本となる




  ストリーム処理             継続的な計算                      分散RPC

•QueueとWorkerによる処理   •継続的なクエリ実行              •on the fly でのクエリ実行
•フォールト・トレラント         •処理結果のストリーミング           •並列化
•スケーラブル                                      •膨大なデータの処理




                                                              12
                       Advanced Tech Night
6. Stormクラスタ

Stormクラスタ                                      Nimbus
                     Supervisor
                                              StormクラスタにおけるMasterノード
                                               •Workerプロセスへのタスクの割り振り
                           Worker
                                               •Workerプロセスのモニタリング

         Zookeeper   Supervisor               Supervisor
                                              StormクラスタにおけるSlaveノード
                           Worker
Nimbus   Zookeeper                             •タスクのアサイン待ち受け
                                               •Workerプロセスの起動/停止
                     Supervisor
         Zookeeper                            Zookeeper
                           Worker
                                              NimbusとSupervisoer間の協調
                                               •各ノードで動作するデーモンの
                     Supervisor                 状態を管理

                                               Worker
                           Worker
                                              タスクを実行するプロセス
                                               •Topologyのサブセットの実行
                                                                    13
                        Advanced Tech Night
7. Topology
                              Bolt
 Spout
                                                                    Bolt




                                            Tuple   Tuple   Tuple




                     Topology
              Spout & Bolt からなるネットワーク構造

                                                                     14
                      Advanced Tech Night
7. Topology

 Topologyの構成要素
              Stormで処理されるメッセージを保持するデータのこと。
 Tuple        デフォルトでは、integer, long, short, byte, string, double,
              float, boolean, byte配列などをサポート。

              途切れずに連続するTupleを意味する。
 Stream
              Streamのソースとなるもので、Tupleを送り出す。
 Spout        Stormのストリーム処理の起点となる。
              Streamの変換処理を行う。
 Bolt         単一、または、複数のStreamからTupleを受信し、
              加工した上で、新たなStreamにメッセージを送信する。

              Spout、Boltからなるネットワーク構造のこと。
 Topology     Stormで処理を実行する場合は、このTopologyの単位で
              Stromクラスタに渡す。

                                                                15
                        Advanced Tech Night
7. Topology
Topologyの構築は非常に簡単!(分散処理を、これだけで実現)
// 新規のTopologyを生成
TopologyBuilder builder = new TopologyBuilder();

// Spout を設定
builder.setSpout(“spout1", new TestWordSpout(true), 5);
builder.setSpout(“spout2", new TestWordSpout(true), 3);
                                                                   Spout、Bolt共に
// Bolt を設定                                                        スレッド数を指定
builder.setBolt(“bolt1", new TestWordCounter(), 3)
                .fieldsGrouping("spout1", new Fields("word"))
                .fieldsGrouping(“spout2", new Fields("word"));
                                                                  Worker数を“4”で指定
// Topologyの設定を指定
Map conf = new HashMap();
                                                                  (1つのSupervisorで
conf.put(Config.TOPOLOGY_WORKERS, 4);                            起動する最大Worker数)

// TopologyをStormのクラスタへ登録
StormSubmitter.submitTopology("mytopology", conf, builder.createTopology());


                                                                                  16
                                        Advanced Tech Night
8. TaskとWoker



                                             Task


                                                      Task
                                         Spout、Boltの実行単位のこと
                                                    →スレッドとなる
                                              各Taskは、クラスタ内の
 Task                                          ノードで動作している、
                                         Workerプロセスで実行される

                                           ※Taskは、Worker全体で
                Task
                                                できるだけ均等に
                                                    分散される
                                                           17
                   Advanced Tech Night
8. TaskとWoker

    :Spout(2スレッド) + :Bolt(4スレッド)の分散イメージ
            ⇒Worker(プロセス)数とTask(スレッド)数を
             考慮して、チューニングを行う
                                               Worker
  Woker 1つ
  (6スレッドまとめて)     Bolt     Spout        Bolt        Spout      Bolt       Bolt


                         Worker                                Worker
  Woker 2つ
  (3スレッドずつ)
                Spout    Bolt       Spout               Bolt   Bolt      Bolt


                  Worker                       Worker                 Worker
  Woker 3つ
  (2スレッドずつ)
                Spout Spout               Bolt     Bolt          Bolt     Bolt

                ※プロセス数・スレッド数は指定できるが、どのように分散するかは、
                 あくまでStormが自動で決めます。
                                                                                 18
                         Advanced Tech Night
9. Stream Groupings


                                                                  Stream
    Stream                                                     Groupings
                                                         Boltが、インプットとして
                                                            どのようなStreamを
                                                                読み込むかを
                   Stream Groupings                             指定する定義


                                builder.setBolt(“bolt1", new TestWordCounter(), 3)
                                         .fieldsGrouping("spout1", new Fields("word"))
                                         .fieldsGrouping(“spout2", new Fields("word"));
    Stream

             Stream Groupings                         この部分の指定


                                                                                    19
                           Advanced Tech Night
9. Stream Groupings
 6種類の Stream Groupings を知る
 Shuffle grouping   各Boltが等しい数のTupleを受けとるように、Tupleがランダムに
                    Boltタスクへ配信される。

 Fields grouping    Streamは、グループで指定されたフィールドによって分割される。
                    同じ値を持つTupleは、必ず同じタスクへ送信され、異なる値を持つ
                    Tupleは、他のタスクへ送信される。

 All grouping       Streamは複製され、すべてのBoltタスクへ送信される。
                    このグループは十分に注意して使用すること。

 Global grouping    Stream全体が、ただ一つのBoltタスクへ送信される。
                    具体的には、Streamは最も小さいIDのタスクへ送信される。

 None grouping      どのようにStreamがグループ化されるか気にしない。
                    現状このグループは Shuffle grouping と同じである。
                    だが、Stormは、このグループのBoltを(可能な場合)送信元のBolt
                    またはSpoutと同じスレッドで実行させる。

 Direct grouping    これは、ある種特別なグループである。
                    このグループのStreamは、Tuple生成者がコンシューマの
                    どのタスクに、Tupleを受けとらせるか決める。
                                                           20
                          Advanced Tech Night
10. 実行イメージ

ワードカウントの例                                             Word
                                                      Count       ["the”,2]
  1文を                                                  Bolt
Tupleとして              単語に       ["the”]
   送出                 分割
                                                      Word
                                                      Count       [“cow”,1]
Sentence              Split                            Bolt
 Spout                Bolt          [“cow”]
                                                        ・      単語の
 "the cow jumped                                        ・     発現回数を
 over the moon“                                         ・      カウント
                              [“moon”]
 ・・・
                                                      Word
                                                      Count      [“moon”,1]
            Shuffle              Fields                Bolt
           grouping             grouping
                          (同じ単語は同じBoltへ送信)

                                                                         21
                                Advanced Tech Night
11. 実行モード

Stormを実行する2つのモード

 Local mode     Stormクラスタをシミュレート可能な
 (ローカルモード)      モード。主に、Topologyの動作確認
                として利用する。


 Distributed mode Stormクラスタを、複数ノードに分散
 (分散モード)          して実行するモード。
                実際の運用で利用する。



                                      22
                Advanced Tech Night
12. Hadoopとの比較

Stormの構成は、Hadoopと比較すると分かりやすい
                Hadoop                                  Storm
対象     バッチ処理                               リアルタイム処理
実行     • 巨大で有限のジョブ                         • 小さい無限のジョブ
       • たくさんのデータを一度だけ                     • 無限のストリームデータを
         処理する                                連続して処理する
       • 長い待ち時間                            • 短い待ち時間
処理構成 MapReduce                             Topology
      → Mapper + Reducer                    → Spout + Bolt
ノード    JobTracker                          Nimbus
       TaskTracker                         Supervisor

          ただし、Stormは、Hadoopと競合するものではない
          導入するシステムの特性を見極め、使い分けることが重要

                                                                23
                     Advanced Tech Night
まとめ

1. Stormは、『分散し、フォールトトレラントなリアルタイ
   ム処理フレームワーク』である
2. 6つの特徴
 ①非常に幅広いユースケース ②拡張性
 ③データ欠損がないことの保証 ④堅牢性
 ⑤耐障害性          ⑥プログラミング言語非依存
3. 3つの基本ユースケース
 ①ストリーム処理 ②継続的な計算 ③分散RPC
4. Stormを構成する要素
 • クラスタ/ Topology / Stream / Tuple / Spout / Bolt
5. 「ローカルモード」と「分散モード」で実行可能
                                              24
                    Advanced Tech Night
Storm 0.7.0 released at 2012/02/28

以下の機能が追加されました

1. Transactional Topology
   Spout/Bolt全体の処理をひとつのトランザクションとして
    扱うことができる


2. Component-specific configuration
   個々のSpout/Boltに対して、設定をカスタマイズ可能
    となる(これまでは、Topology単位での指定であった)。



                                           25
                     Advanced Tech Night
Thank you
Try Storm!

                         26
   Advanced Tech Night

More Related Content

What's hot

モバイル向けEdgeTPUの紹介
モバイル向けEdgeTPUの紹介モバイル向けEdgeTPUの紹介
モバイル向けEdgeTPUの紹介
卓然 郭
 
動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )
cvpaper. challenge
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
gree_tech
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
NTT DATA Technology & Innovation
 
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
Ken SASAKI
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
Carnot Inc.
 
Teslaにおけるコンピュータビジョン技術の調査 (2)
Teslaにおけるコンピュータビジョン技術の調査 (2)Teslaにおけるコンピュータビジョン技術の調査 (2)
Teslaにおけるコンピュータビジョン技術の調査 (2)
Kazuyuki Miyazawa
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
[DL輪読会]Whole-Body Human Pose Estimation in the Wild
[DL輪読会]Whole-Body Human Pose Estimation in the Wild[DL輪読会]Whole-Body Human Pose Estimation in the Wild
[DL輪読会]Whole-Body Human Pose Estimation in the Wild
Deep Learning JP
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
Kouhei Sutou
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
 
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
Deep Learning JP
 

What's hot (20)

モバイル向けEdgeTPUの紹介
モバイル向けEdgeTPUの紹介モバイル向けEdgeTPUの紹介
モバイル向けEdgeTPUの紹介
 
動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
 
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
 
Teslaにおけるコンピュータビジョン技術の調査 (2)
Teslaにおけるコンピュータビジョン技術の調査 (2)Teslaにおけるコンピュータビジョン技術の調査 (2)
Teslaにおけるコンピュータビジョン技術の調査 (2)
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
[DL輪読会]Whole-Body Human Pose Estimation in the Wild
[DL輪読会]Whole-Body Human Pose Estimation in the Wild[DL輪読会]Whole-Body Human Pose Estimation in the Wild
[DL輪読会]Whole-Body Human Pose Estimation in the Wild
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
 

Similar to Twitterのリアルタイム分散処理システム「Storm」入門

Stormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIStormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPI
AdvancedTechNight
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
Takanori Suzuki
 
Open Source Study Session #3
Open Source Study Session #3Open Source Study Session #3
Open Source Study Session #3
Satoshi Konno
 
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
AdvancedTechNight
 
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
Tomohiro Ohtake
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Uptime Technologies LLC (JP)
 
リアルタイム処理エンジン Gearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジン Gearpumpの紹介
Sotaro Kimura
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
 
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
VirtualTech Japan Inc.
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
Midori Oge
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
 
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
Masahito Zembutsu
 
Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤
NTT Communications Technology Development
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
M Hagiwara
 
cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)
iret, Inc.
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
openrtm
 
OpenStack Updates
OpenStack UpdatesOpenStack Updates
OpenStack Updates
Masanori Itoh
 

Similar to Twitterのリアルタイム分散処理システム「Storm」入門 (20)

Stormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIStormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPI
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
 
Open Source Study Session #3
Open Source Study Session #3Open Source Study Session #3
Open Source Study Session #3
 
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
 
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
 
リアルタイム処理エンジン Gearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジン Gearpumpの紹介
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
 
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
 
Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
OpenStack Updates
OpenStack UpdatesOpenStack Updates
OpenStack Updates
 

More from AdvancedTechNight

CSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3DCSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3D
AdvancedTechNight
 
D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界
AdvancedTechNight
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
 
CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現
AdvancedTechNight
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocket
AdvancedTechNight
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
AdvancedTechNight
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
AdvancedTechNight
 
TypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)ScriptTypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
AdvancedTechNight
 
three.jsで作る3Dの世界
three.jsで作る3Dの世界three.jsで作る3Dの世界
three.jsで作る3Dの世界
AdvancedTechNight
 
Spine入門
Spine入門Spine入門
Spine入門
AdvancedTechNight
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
AdvancedTechNight
 
Twitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoTwitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demo
AdvancedTechNight
 
Hadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバックHadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバック
AdvancedTechNight
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOne
AdvancedTechNight
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
AdvancedTechNight
 
ATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMRATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMR
AdvancedTechNight
 
ATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlersATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlers
AdvancedTechNight
 

More from AdvancedTechNight (18)

CSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3DCSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3D
 
D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
 
CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocket
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
 
TypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)ScriptTypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
 
three.jsで作る3Dの世界
three.jsで作る3Dの世界three.jsで作る3Dの世界
three.jsで作る3Dの世界
 
Spine入門
Spine入門Spine入門
Spine入門
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 
Twitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoTwitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demo
 
Hadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバックHadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバック
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOne
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
 
ATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMRATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMR
 
ATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlersATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlers
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 

Recently uploaded

20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
Ayachika Kitazaki
 
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Shinichi Hirauchi
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
Toru Tamaki
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
たけおか しょうぞう
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
Toru Tamaki
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
Natsutani Minoru
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
Sony - Neural Network Libraries
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo Lab
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
ARISE analytics
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo Lab
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
CRI Japan, Inc.
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
chisatotakane
 

Recently uploaded (15)

20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
 
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
 

Twitterのリアルタイム分散処理システム「Storm」入門

  • 1. Advanced Tech Night No.04 Twitterの リアルタイム分散処理システム Storm 入門 2012/03/01 Acroquest Technology 鈴木 貴典
  • 2. 自己紹介  氏名 : 鈴木 貴典  所属 : Acroquest Technology  Twitter : @takanorig  本職は SEPG (Software Engineering Process Group) ★ プロセスとか、品質とか、マネジメントとか・・・ ★ その一方、OSSの開発・調査とか、フレームワークの開発 なんかもしています (たぶん、めずらしい存在です) 1 Advanced Tech Night
  • 3. 目次 1. Stormとは? 6. Stormクラスタ 2. Stormの6つの特徴 7. Topology 3. Stormが生まれた 8. TaskとWorker 背景 9. Stream Groupings 4. Stormができること? 10.実行イメージ 5. 3つの基本 11.実行モード ユースケース 12.Hadoopとの比較 2 Advanced Tech Night
  • 5. 1. Stormとは? 1. 元々は、米BackType社が開発  Twitter社がBackType社を買収し、オープンソースとして公開(2011/09/19)  Twitterでは、つぶやきのリアルタイム解析に利用 2. 一般的には、 「CEP(Complex Event Processing):複合イベント処理」 のシステムに分類される  同分類のOSSプロダクト →Yahoo S4、 Esper、Streambase、HStreaming など 3. 連続的に発生するデータを、継続的に処理をし続ける 4. コアプロセスはClojure、コンポーネントはJavaで実装されている  ノード間の通信にThriftを利用しているので、他の言語でも開発可能 4 Advanced Tech Night
  • 6. 2. Stormの6つの特徴 1. Extremely broad set of use cases 非常に幅広いユースケース •「ストリーム処理」・・・ メッセージ処理や、データベースのリアルタイム更新 •「継続的な処理」・・・ 連続的なクエリの実行や、クライアントへ処理結果を ストリーミングで表示する、などの継続的な計算 •「分散RPC」・・・ 即座に処理する検索クエリのような激しいクエリの並列処理 など、Stormの基本機能は、非常に多くのユースケースに対応します。 2. Scalable 拡張性 Stormは、膨大なメッセージの処理に対してもスケールします。 Topology拡張のためにしなければならないことは、マシンの増設、並列処理数 を増やすだけです。 例として、Stormの最初のアプリケーションの1つにおいて、10ノードのクラスタ 上で、毎秒、1,000,000メッセージと数百回のデータベース呼び出し処理を実 現してます。 クラスタ調整のためにZookeeperと組み合わせて使えば、さらに大きなサイズ のクラスタへスケールすることもできます。 5 Advanced Tech Night
  • 7. 2. Stormの6つの特徴 3. Guarantees no data loss データ欠損がないことの保証 リアルタイム処理システムは、データが正常に処理されることを強く保証 しなければなりません。データが欠損するシステムは、非常に限られた ユースケースでしか使用できません。 Stormは、あらゆるメッセージが処理されることを保証します。そして、これが S4などの他のシステムと大きく異なる点です。 4. Extremely robust 堅牢性 扱いが難しいHadoopのようなシステムと違って、Stormクラスタは、 簡単に動作します。 ユーザーができるだけ苦労せず、Stormクラスタを 動かせるようにする、というのは、 Stormプロジェクトの明確なゴールです。 6 Advanced Tech Night
  • 8. 2. Stormの6つの特徴 5. Fault-tolerant 耐障害性 データ処理中に障害が起きた場合、Stormは必要に応じてタスクの再割当を します。Stormは、データ処理をし続けること(またはデータ処理を停止させる まで継続すること)を保証します。 6. Programming language agnostic プログラミング言語非依存 堅牢で拡張性のあるリアルタイム処理は、一つのプラットホームに限定される べきではありません。StormのTopologyと処理コンポーネントは、様々な言語 で定義でき、どんな開発者にとっても利用しやすくなっています。 7 Advanced Tech Night
  • 9. 3. Stormが生まれた背景 大規模分散処理と言えば・・・ Storm以前の Hadoop リアルタイム処理は・・・ ・キューとワーカーによる処理 →メッセージの取得 →DBの更新 →新たなメッセージをキューに登録 しかしながら、Hadoopで、 ① 退屈な仕事 リアルタイムの処理を ② 脆弱 実現するのは困難であった ③ 拡張が大変 Storm リアルタイム 分散 データの保証 耐障害性 拡張性 8 Advanced Tech Night
  • 10. Stormができること? 9 Advanced Tech Night
  • 11. 分散処理 のみ 10 Advanced Tech Night
  • 12. 4. Stormができること? リアルタイムでの 分散処理の 実行のみに特化 シンプル かつ 強力 11
  • 13. 5. 3つの基本ユースケース Stormの処理は以下の3つのユースケースが基本となる ストリーム処理 継続的な計算 分散RPC •QueueとWorkerによる処理 •継続的なクエリ実行 •on the fly でのクエリ実行 •フォールト・トレラント •処理結果のストリーミング •並列化 •スケーラブル •膨大なデータの処理 12 Advanced Tech Night
  • 14. 6. Stormクラスタ Stormクラスタ Nimbus Supervisor StormクラスタにおけるMasterノード •Workerプロセスへのタスクの割り振り Worker •Workerプロセスのモニタリング Zookeeper Supervisor Supervisor StormクラスタにおけるSlaveノード Worker Nimbus Zookeeper •タスクのアサイン待ち受け •Workerプロセスの起動/停止 Supervisor Zookeeper Zookeeper Worker NimbusとSupervisoer間の協調 •各ノードで動作するデーモンの Supervisor 状態を管理 Worker Worker タスクを実行するプロセス •Topologyのサブセットの実行 13 Advanced Tech Night
  • 15. 7. Topology Bolt Spout Bolt Tuple Tuple Tuple Topology Spout & Bolt からなるネットワーク構造 14 Advanced Tech Night
  • 16. 7. Topology Topologyの構成要素 Stormで処理されるメッセージを保持するデータのこと。 Tuple デフォルトでは、integer, long, short, byte, string, double, float, boolean, byte配列などをサポート。 途切れずに連続するTupleを意味する。 Stream Streamのソースとなるもので、Tupleを送り出す。 Spout Stormのストリーム処理の起点となる。 Streamの変換処理を行う。 Bolt 単一、または、複数のStreamからTupleを受信し、 加工した上で、新たなStreamにメッセージを送信する。 Spout、Boltからなるネットワーク構造のこと。 Topology Stormで処理を実行する場合は、このTopologyの単位で Stromクラスタに渡す。 15 Advanced Tech Night
  • 17. 7. Topology Topologyの構築は非常に簡単!(分散処理を、これだけで実現) // 新規のTopologyを生成 TopologyBuilder builder = new TopologyBuilder(); // Spout を設定 builder.setSpout(“spout1", new TestWordSpout(true), 5); builder.setSpout(“spout2", new TestWordSpout(true), 3); Spout、Bolt共に // Bolt を設定 スレッド数を指定 builder.setBolt(“bolt1", new TestWordCounter(), 3) .fieldsGrouping("spout1", new Fields("word")) .fieldsGrouping(“spout2", new Fields("word")); Worker数を“4”で指定 // Topologyの設定を指定 Map conf = new HashMap(); (1つのSupervisorで conf.put(Config.TOPOLOGY_WORKERS, 4); 起動する最大Worker数) // TopologyをStormのクラスタへ登録 StormSubmitter.submitTopology("mytopology", conf, builder.createTopology()); 16 Advanced Tech Night
  • 18. 8. TaskとWoker Task Task Spout、Boltの実行単位のこと →スレッドとなる 各Taskは、クラスタ内の Task ノードで動作している、 Workerプロセスで実行される ※Taskは、Worker全体で Task できるだけ均等に 分散される 17 Advanced Tech Night
  • 19. 8. TaskとWoker :Spout(2スレッド) + :Bolt(4スレッド)の分散イメージ ⇒Worker(プロセス)数とTask(スレッド)数を 考慮して、チューニングを行う Worker Woker 1つ (6スレッドまとめて) Bolt Spout Bolt Spout Bolt Bolt Worker Worker Woker 2つ (3スレッドずつ) Spout Bolt Spout Bolt Bolt Bolt Worker Worker Worker Woker 3つ (2スレッドずつ) Spout Spout Bolt Bolt Bolt Bolt ※プロセス数・スレッド数は指定できるが、どのように分散するかは、 あくまでStormが自動で決めます。 18 Advanced Tech Night
  • 20. 9. Stream Groupings Stream Stream Groupings Boltが、インプットとして どのようなStreamを 読み込むかを Stream Groupings 指定する定義 builder.setBolt(“bolt1", new TestWordCounter(), 3) .fieldsGrouping("spout1", new Fields("word")) .fieldsGrouping(“spout2", new Fields("word")); Stream Stream Groupings この部分の指定 19 Advanced Tech Night
  • 21. 9. Stream Groupings 6種類の Stream Groupings を知る Shuffle grouping 各Boltが等しい数のTupleを受けとるように、Tupleがランダムに Boltタスクへ配信される。 Fields grouping Streamは、グループで指定されたフィールドによって分割される。 同じ値を持つTupleは、必ず同じタスクへ送信され、異なる値を持つ Tupleは、他のタスクへ送信される。 All grouping Streamは複製され、すべてのBoltタスクへ送信される。 このグループは十分に注意して使用すること。 Global grouping Stream全体が、ただ一つのBoltタスクへ送信される。 具体的には、Streamは最も小さいIDのタスクへ送信される。 None grouping どのようにStreamがグループ化されるか気にしない。 現状このグループは Shuffle grouping と同じである。 だが、Stormは、このグループのBoltを(可能な場合)送信元のBolt またはSpoutと同じスレッドで実行させる。 Direct grouping これは、ある種特別なグループである。 このグループのStreamは、Tuple生成者がコンシューマの どのタスクに、Tupleを受けとらせるか決める。 20 Advanced Tech Night
  • 22. 10. 実行イメージ ワードカウントの例 Word Count ["the”,2] 1文を Bolt Tupleとして 単語に ["the”] 送出 分割 Word Count [“cow”,1] Sentence Split Bolt Spout Bolt [“cow”] ・ 単語の "the cow jumped ・ 発現回数を over the moon“ ・ カウント [“moon”] ・・・ Word Count [“moon”,1] Shuffle Fields Bolt grouping grouping (同じ単語は同じBoltへ送信) 21 Advanced Tech Night
  • 23. 11. 実行モード Stormを実行する2つのモード Local mode Stormクラスタをシミュレート可能な (ローカルモード) モード。主に、Topologyの動作確認 として利用する。 Distributed mode Stormクラスタを、複数ノードに分散 (分散モード) して実行するモード。 実際の運用で利用する。 22 Advanced Tech Night
  • 24. 12. Hadoopとの比較 Stormの構成は、Hadoopと比較すると分かりやすい Hadoop Storm 対象 バッチ処理 リアルタイム処理 実行 • 巨大で有限のジョブ • 小さい無限のジョブ • たくさんのデータを一度だけ • 無限のストリームデータを 処理する 連続して処理する • 長い待ち時間 • 短い待ち時間 処理構成 MapReduce Topology → Mapper + Reducer → Spout + Bolt ノード JobTracker Nimbus TaskTracker Supervisor ただし、Stormは、Hadoopと競合するものではない 導入するシステムの特性を見極め、使い分けることが重要 23 Advanced Tech Night
  • 25. まとめ 1. Stormは、『分散し、フォールトトレラントなリアルタイ ム処理フレームワーク』である 2. 6つの特徴 ①非常に幅広いユースケース ②拡張性 ③データ欠損がないことの保証 ④堅牢性 ⑤耐障害性 ⑥プログラミング言語非依存 3. 3つの基本ユースケース ①ストリーム処理 ②継続的な計算 ③分散RPC 4. Stormを構成する要素 • クラスタ/ Topology / Stream / Tuple / Spout / Bolt 5. 「ローカルモード」と「分散モード」で実行可能 24 Advanced Tech Night
  • 26. Storm 0.7.0 released at 2012/02/28 以下の機能が追加されました 1. Transactional Topology  Spout/Bolt全体の処理をひとつのトランザクションとして 扱うことができる 2. Component-specific configuration  個々のSpout/Boltに対して、設定をカスタマイズ可能 となる(これまでは、Topology単位での指定であった)。 25 Advanced Tech Night
  • 27. Thank you Try Storm! 26 Advanced Tech Night