---
title: Storm の新機能について @HSCR #hadoopreading
tags:  #hadoopreading  
author: [Yahoo!デベロッパーネットワーク](https://www.docswell.com/user/ydnjp)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4EQXXMPR7P.jpg?width=480
description: 2017.03.03 Hadoopソースコードリーディング 第22回  https://www.eventbrite.com/e/hadoop-22-tickets-31987821435
published: March 08, 17
canonical: https://www.docswell.com/s/ydnjp/59D8VK-2017-03-08-123833
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4EQXXMPR7P.jpg)

Storm の新機能について
@ HSCR
2017年3月8日
ヤフー株式会社 小野和輝
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 2

![Page Image](https://bcdn.docswell.com/page/KJ466VYQ71.jpg)

自己紹介
小野 和輝 (おのかずき)
-
入社1年目
リアルタイム分散処理基盤の運用 / 保守
安定したリアルタイム分散処理基盤の提供
カッパとアザラシ推しの街に住んでいます
写真:アフロ
2
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LE1VV36L7G.jpg)

今日お話する内容
Apache Storm 1.x 系の新機能
-
処理性能の向上 (レイテンシ60%軽減 / スループット 16倍) !
ファイルをトポロジーと一緒にデプロイしなくても ok !
デフォルトで HA に対応したよ !
ログの操作が簡単になったよ !
2017/2/14 storm 1.0.3 release … 特に大きな変化は無いはず…
3
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 4

![Page Image](https://bcdn.docswell.com/page/GEWLLPWQ72.jpg)

Agenda
Distributed Cache API
Highly Available Nimbus
Distributed Log Search
Dynamic Log Level Settings
4
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 5

![Page Image](https://bcdn.docswell.com/page/47ZMMK53E3.jpg)

Agenda
Distributed Cache API
Highly Available Nimbus
Distributed Log Search
Dynamic Log Level Settings
5
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 6

![Page Image](https://bcdn.docswell.com/page/YJ6NNQ9ZJV.jpg)

Storm 0.9 系…
トポロジーで読み込むデータの
サイズが大きすぎる… (´・ω・`)
トポロジーをクラスタに投入するまでに
めっちゃ時間かかる… (´・ω・`)
＼(^o^)／
6
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GJ555RN9J4.jpg)

Distributed Cache API | 概要
ファイルを HDFS などに登録して外から呼び出す機能
概要
- BlobStore と呼ばれるインタフェースを使用
- Supervisor 起動時に BlobStore の Map を取得
BlobStore へ登録するファイル
レプリケーション数の設定
$ storm blobstore create --file &lt;登録するファイル&gt; --acl o::rwa --replication-factor 4 key1
ACL の設定
- Secure な Storm クラスタでのみ有効
7
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LE3NNP22E5.jpg)

Distributed Cache API | 使ってみる
key1 で README.markdown を BlobStore へ登録
$ storm blobstore create --file README.markdown --acl o::rwa --replication-factor 4 key1
…
3283 [main] INFO o.a.s.c.blobstore - Creating key1 with ACL (&quot;o::rwa&quot;)
3912 [main] INFO o.a.s.c.blobstore - Successfully created key1
BlobStore へ登録したファイルの確認
$ less ${storm.local.dir}/blobs/729/data_key1/data
Master Branch: [![Travis CI](https://travis-ci.org/apache/storm.svg?branch=master)] …
Storm is a distributed realtime computation system…
8
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 9

![Page Image](https://bcdn.docswell.com/page/8EDWWLZ67G.jpg)

Distributed Cache API | 実装してみる
実装
内容
WordCountTopology へ単語のフィルタリング機能を実装
- BlobStore へ 単語のブラックリストを登録
- じゃぱりぱーく Java でつくりました
RandomSentenceSpout
WordCount
SplitSentence
- BlobStore からブラックリストを取得してフィルタリング
- The / cow / jumped / over / moon をブラックリストへ登録
9
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 10

![Page Image](https://bcdn.docswell.com/page/V7P992YZJ8.jpg)

Distributed Cache API | 実装してみる
送信する文章
blacklist に登録した単語は
カウントしていない
6
the cow jumped over the moon / an apple a day keeps the doctor away
four score and seven years ago / snow white and seven dwarfs
単語
出現数
単語
出現数
単語
出現数
the
0
ago
50
a
57
cow
0
four
51
day
57
jumped
0
snow
52
keeps
57
over
0
white
52
doctor
57
moon
0
dwarfs
54
away
57
score
50
an
57
and
101
year
50
apple
57
seven
101
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 11

![Page Image](https://bcdn.docswell.com/page/2JVMMDGMJQ.jpg)

Agenda
Distributed Cache API
Highly Available Nimbus
Distributed Log Search
Dynamic Log Level Settings
11
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 12

![Page Image](https://bcdn.docswell.com/page/5EGGGY8XEL.jpg)

Storm 0.9 系…
Nimbus が SPOF ＼(^o^)／
12
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4JQXXM95EP.jpg)

Highly Available Nimbus | 概要
概要
Nimbus での障害発生時にシステムの可用性が低下することを抑制
他 Nimbus
トポロジーの投入
リーダー Nimbus
- メタファイルをダウンロード
- 投入されたトポロジーに関するメタファイルを生成
- 他 Nimbus へメタファイルを生成したことを通知
13
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 14

![Page Image](https://bcdn.docswell.com/page/K7466VXVE1.jpg)

Highly Available Nimbus | 検証
検証項目
検証結果
リーダーを再起動
リーダーが切り替わる
リーダーを停止
リーダーが切り替わる
リーダー停止 → トポロジーを操作
操作可能
リーダー停止 → トポロジー操作 → リーダー再起動
トポロジー操作後の状態を維持
新しいリーダーからトポロジーを投入
投入可能
全ての Nimbus を停止してリーダ以外の Nimbus を起動
Storm UI で Internal Server Error!!!
最後にリーダーだった Nimbus を起動する必要がある
14
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 15

![Page Image](https://bcdn.docswell.com/page/LJ1VV3N4EG.jpg)

Agenda
Distributed Cache API
Highly Available Nimbus
Distributed Log Search
Dynamic Log Level Settings
15
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GJWLLP4ZE2.jpg)

Storm 0.9 系…
トポロジーのログが探しづらい
＼(^o^)／
16
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4EZMMK2LJ3.jpg)

Distributed Log Search | 概要
概要
Storm UI 上で特定のトポロジーのログを全 Worker から検索する機能
Worker A 上に存在する
検索対象のログ
Worker B 上に存在する
検索対象のログ
17
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 18

![Page Image](https://bcdn.docswell.com/page/Y76NNQVM7V.jpg)

Distributed Log Search | 使い方 (1/2)
虫眼鏡アイコンを選択
18
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 19

![Page Image](https://bcdn.docswell.com/page/G7555RDQ74.jpg)

Distributed Log Search | 使い方 (2/2)
虫眼鏡アイコンを選択
- Topology Id : 検索したいトポロジーの ID
- Search : 検索対象の文字列
19
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 20

![Page Image](https://bcdn.docswell.com/page/9J2NND8WER.jpg)

おまけ | Worker ごとのログ検索
Worker A 上で動作する
wordcount に関するログ一覧
20
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 21

![Page Image](https://bcdn.docswell.com/page/DEYPP269EM.jpg)

Agenda
Distributed Cache API
Highly Available Nimbus
Distributed Log Search
Dynamic Log Level Settings (おまけ)
21
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 22

![Page Image](https://bcdn.docswell.com/page/VJN558ZD78.jpg)

Dynamic Log Level Setting | 概要
概要
22
トポロジーを起動したままログレベルを変更できる機能
- Storm UI / Storm CLI から変更可能
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 23

![Page Image](https://bcdn.docswell.com/page/YE9YYKZ8J3.jpg)

Dynamic Log Level Setting | UI から変更
23
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 24

![Page Image](https://bcdn.docswell.com/page/GE866R1Z7D.jpg)

Dynamic Log Level Setting | CLI で変更
ログレベルの設定を行う Storm CLI
$ storm set_log_level &lt;topology&gt; -l &lt;logger&gt;=&lt;Level&gt;:&lt;Timeout&gt;
$ storm set_log_level kazono-wordcount -l ROOT=ERROR:30
設定したログレベルの削除を行う Storm CLI
$ storm set_log_level &lt;topology&gt; -r &lt;logger&gt;
$ storm set_log_level kazono-wordcount -r ROOT
24
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 25

![Page Image](https://bcdn.docswell.com/page/LEL99KQ1JR.jpg)

まとめ
25
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 26

![Page Image](https://bcdn.docswell.com/page/4JMZZ215EW.jpg)

まとめ
Storm の新機能をしってるフレンズなんだね！
写真:アフロ
26
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 27

![Page Image](https://bcdn.docswell.com/page/PJR66MLZ79.jpg)

EOP
27
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


