Amazon EC2 + Storm
三上 浩平(@mi_kami)
自己紹介的な
• 三上 浩平
• ギークハウス新丸子とかい
うシェアハウスに住んでい
ます
1. Stormとは?
Stormとは
• Twitterで使われているリアルタイムの分
散処理システム

• 大規模分散処理を実現する
• データが有限ではなく、無限にあるよ
うなケースで使う
利用例
• Twitterのトレンド
• リアルタイムで流
れるツイートから
トレンドを計算
2. Stormのクラスタ構成
全体像
• 構成する要素は以

Nimbus

下の4つ

• Nimbus
• ZooKeeper
• SuperVisor
• Worker

ZooKeeper

SuperVisor
Worker
Worker
Worker

ZooK...
Nimbus
• Stormのマスター

Nimbus

ノード

• Workerプロセス
へのタスクの割り
振り

ZooKeeper

SuperVisor
Worker
Worker
Worker

ZooKeeper

SuperVi...
Zookeeper
• ノード間のデーモ

Nimbus

ンの状態を管理

• Nimbus,

SuperVisor, Worker
は状態を持たない

Zookeeper

SuperVisor
Worker
Worker
Worker
...
SuperVisor
Nimbus

• タスクのアサイン
の待ち受け

ZooKeeper

ZooKeeper

• Wokerプロセスの
起動と停止

SuperVisor
Worker
Worker
Worker

SuperVisor...
Worker
Nimbus

• タスクを実行する

ZooKeeper

SuperVisor
Worker
Worker
Worker

ZooKeeper

SuperVisor
Worker
Worker
Worker

SuperVi...
3. 環境の構築
Amazon EC2
• Amazon EC2上で構築するのが一番簡単
• storm-deploy
• GitHub上で公開されているプロジェ
クト

• 設定ファイルを書くだけで簡単に
Amazon EC2上に環境が作れる
storm-deploy
• GitHub
• https://github.com/nathanmarz/stormdeploy

• Wikiの説明通りに進めるだけ!
4. Topologyを作って問題
を解く
Topologyの構築
• Topologyはタスクを
実行する単位

• Java, Clojure等でコー

ドを書いてこれらを
作る

• TopologyはSpout, Bolt,
Streamをそれぞれ持
つ

Bolt
Spout
...
Spout
• Spoutはデータの
流れの源

• データは無限長の
タプルで表される

Bolt
Spout

Bolt
Bolt
Stream

Spout

Bolt

Topology
Stream
• StreamはBolt,
Spout間のデータ

Bolt
Spout

Bolt
Bolt

の流れを表す

Stream

• Spout同様、デー
タ形式はタプル

Spout

Bolt

Topology
Bolt
• BoltはStreamを加
工して別のStream
を作成する

• Boltは複数の
Workerで動作す
る

Bolt
Spout

Bolt
Bolt
Stream

Spout

Bolt

Topology
例: WordCount
•
•
•
•

Spoutから文字列を流す
SplitBoltで文字列を単語に区切る
CountBoltで単語の数をカウントする
TotalBoltでそれぞれの単語を合計する

The gameplay is cen...
Topologyとクラスタの関係1
Nimbus
Bolt
Spout

Bolt
Bolt

Spout

ZooKeeper

ZooKeeper

Bolt

Topology

SuperVisor
Worker
Worker
Work...
Topologyとクラスタの関係2
•

TopologyはNimbusに登録される
Nimbus
Bolt

Spout

Bolt
Bolt

Spout

ZooKeeper

ZooKeeper

Bolt

Topology

Sup...
Topologyとクラスタの関係3
•
•

Bolt, SpoutはSuperVisorのWorkerに割り当てられる
NimbusとZookeeperが適切に割り当てを実行
Nimbus
Bolt

Spout

Bolt
Bolt

Sp...
5. Stormのデモ
Topologyを送る, Gangliaで状態を見る...etc
次回予告
• コンピュータ将棋の本
を今読んでる

• Clojure+Stormで実装し
てみる
Upcoming SlideShare
Loading in …5
×

Amazon EC2 + Storm

1,721 views

Published on

数日Stormを触る機会があったので調査。
間違い等あればご指摘ください

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

No Downloads
Views
Total views
1,721
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
11
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Amazon EC2 + Storm

  1. 1. Amazon EC2 + Storm 三上 浩平(@mi_kami)
  2. 2. 自己紹介的な • 三上 浩平 • ギークハウス新丸子とかい うシェアハウスに住んでい ます
  3. 3. 1. Stormとは?
  4. 4. Stormとは • Twitterで使われているリアルタイムの分 散処理システム • 大規模分散処理を実現する • データが有限ではなく、無限にあるよ うなケースで使う
  5. 5. 利用例 • Twitterのトレンド • リアルタイムで流 れるツイートから トレンドを計算
  6. 6. 2. Stormのクラスタ構成
  7. 7. 全体像 • 構成する要素は以 Nimbus 下の4つ • Nimbus • ZooKeeper • SuperVisor • Worker ZooKeeper SuperVisor Worker Worker Worker ZooKeeper SuperVisor SuperVisor Worker Worker Worker Worker Worker Worker
  8. 8. Nimbus • Stormのマスター Nimbus ノード • Workerプロセス へのタスクの割り 振り ZooKeeper SuperVisor Worker Worker Worker ZooKeeper SuperVisor SuperVisor Worker Worker Worker Worker Worker Worker
  9. 9. Zookeeper • ノード間のデーモ Nimbus ンの状態を管理 • Nimbus, SuperVisor, Worker は状態を持たない Zookeeper SuperVisor Worker Worker Worker Zookeeper SuperVisor SuperVisor Worker Worker Worker Worker Worker Worker
  10. 10. SuperVisor Nimbus • タスクのアサイン の待ち受け ZooKeeper ZooKeeper • Wokerプロセスの 起動と停止 SuperVisor Worker Worker Worker SuperVisor Worker Worker Worker SuperVisor Worker Worker Worker
  11. 11. Worker Nimbus • タスクを実行する ZooKeeper SuperVisor Worker Worker Worker ZooKeeper SuperVisor Worker Worker Worker SuperVisor Worker Worker Worker
  12. 12. 3. 環境の構築
  13. 13. Amazon EC2 • Amazon EC2上で構築するのが一番簡単 • storm-deploy • GitHub上で公開されているプロジェ クト • 設定ファイルを書くだけで簡単に Amazon EC2上に環境が作れる
  14. 14. storm-deploy • GitHub • https://github.com/nathanmarz/stormdeploy • Wikiの説明通りに進めるだけ!
  15. 15. 4. Topologyを作って問題 を解く
  16. 16. Topologyの構築 • Topologyはタスクを 実行する単位 • Java, Clojure等でコー ドを書いてこれらを 作る • TopologyはSpout, Bolt, Streamをそれぞれ持 つ Bolt Spout Bolt Bolt Stream Spout Bolt Topology
  17. 17. Spout • Spoutはデータの 流れの源 • データは無限長の タプルで表される Bolt Spout Bolt Bolt Stream Spout Bolt Topology
  18. 18. Stream • StreamはBolt, Spout間のデータ Bolt Spout Bolt Bolt の流れを表す Stream • Spout同様、デー タ形式はタプル Spout Bolt Topology
  19. 19. Bolt • BoltはStreamを加 工して別のStream を作成する • Boltは複数の Workerで動作す る Bolt Spout Bolt Bolt Stream Spout Bolt Topology
  20. 20. 例: WordCount • • • • Spoutから文字列を流す SplitBoltで文字列を単語に区切る CountBoltで単語の数をカウントする TotalBoltでそれぞれの単語を合計する The gameplay is centred upon a mobage-type card... Spout [“The”, “gameplay”, “is”, “centred”, “upon”, “a”, “mobage-type”, “card”] [“The”, 2] [“gameplay”, 1] [“is”, 2] [“centred”, 2] CountBolt SplitBolt CountBolt TotalBolt [“upon”,1] [“a”, 2] [“mobagetype”, 1] [“card”, 3] WordCount Topology [“The”, 2] [“gameplay”, 1] [“is”, 2] [“centred”, 2] [“upon”, 1] [“a”, 2] [“mobage-type”, 1] [“card”, 3]
  21. 21. Topologyとクラスタの関係1 Nimbus Bolt Spout Bolt Bolt Spout ZooKeeper ZooKeeper Bolt Topology SuperVisor Worker Worker Worker SuperVisor SuperVisor Worker Worker Worker Worker Worker Worker
  22. 22. Topologyとクラスタの関係2 • TopologyはNimbusに登録される Nimbus Bolt Spout Bolt Bolt Spout ZooKeeper ZooKeeper Bolt Topology SuperVisor Worker Worker Worker SuperVisor SuperVisor Worker Worker Worker Worker Worker Worker
  23. 23. Topologyとクラスタの関係3 • • Bolt, SpoutはSuperVisorのWorkerに割り当てられる NimbusとZookeeperが適切に割り当てを実行 Nimbus Bolt Spout Bolt Bolt Spout Zookeeper Zookeeper Bolt Topology SuperVisor Worker Worker Worker SuperVisor SuperVisor Worker Worker Worker Worker Worker Worker
  24. 24. 5. Stormのデモ Topologyを送る, Gangliaで状態を見る...etc
  25. 25. 次回予告 • コンピュータ将棋の本 を今読んでる • Clojure+Stormで実装し てみる

×