Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Storm-0.9.2の新機能/修正点を紹介します

こんにちは。kimukimuです。
f:id:acro-engineer:20140709095247p:plain

Stormインストーラ更新のお知らせ

まず最初にお知らせを。
読者の皆さんにも愛用頂いている(?)Stormのインストーラですが、
Storm-0.9.2対応バージョンをアップしました。

下記のページからダウンロードできますので、
Stormを簡単にインストールしたい方、Stormを試してみたいと考えている方は是非使ってみてください。

acromusashi/storm-installer · GitHub

インストーラのアナウンスと併せて、Storm-0.9.2の新機能/修正点を紹介しますね。

Storm-0.9.2の主な新機能/修正点

Storm-0.9.2の新機能/修正点として、主なものは下記の4点があります。

  1. Storm UIにTopology可視化ツールの追加
  2. Storm-Kafkaの更新/媒体への取り込み
  3. Storm-Starterの媒体への取り込み
  4. Storm-UIにREST APIが追加

Storm UIにTopology可視化ツールの追加

Storm-0.9.2の目玉機能が、Topology可視化ツールです。
Spout/Bolt間でどれだけのメッセージが流れているかの概要を即見ることができます。
加えて、Topology可視化ツール自体はStorm-UIに内蔵され、即使うことができます。

使い方は、Storm-UIのTopology Summaryのページから
「Topology Visualization」のボタンを押すだけです。
f:id:acro-engineer:20140713002118j:plain

すると、下記のようにSpout/Bolt間を流れるメッセージの数を表示するグラフが表示されます。
f:id:acro-engineer:20140713002219j:plain
かつ、このグラフはStormが複数のStreamを含む場合、
どのStreamをグラフ中に表示するか絞り込みも可能です。
f:id:acro-engineer:20140713002343j:plain
ただ、Stormのメッセージ失敗検知機構を使用しておらず、Streamの分割も行っていないTopologyの場合、
0件のStreamが表示されるだけなので、Stream絞り込みにはあまり意味はないのですが^^;
f:id:acro-engineer:20140713002530j:plain

尚、グラフに表示されるメッセージ数は「過去10分間」で固定のようです。

Storm-Kafkaの更新/媒体への取り込み

Stormとよくペアで使用されるOSSとしてApache Kafkaがあります。
Kafkaは一言で言うと「PubSub型のメッセージバス」で、Stormが処理するためのデータを保持しておき、
StormがKafkaから取得して処理する、という関係になっています。

StormにはStorm-KafkaというKafkaと結合するためのコンポーネントが存在したのですが、
Kafkaのバージョンアップに追従しておらず、最新版(0.8系)のKafkaには使用できない状態になっていました。
Storm-0.9.2では最新版に合わせて更新され、改めて使用できるようになりました。

また、Storm-KafkaはStormのダウンロード媒体にも含まれるようになりました。
同じApacheプロジェクトだから、というのもあるとは思いますが、StormとKafkaの連携というのは有力な選択肢になりそうですね。

Storm-Starterの媒体への取り込み

Storm-Kafkaと併せて、Storm-StarterもStormのダウンロード媒体に取り込まれました。

これまではStormクラスタを構築後、自分で何か簡単なTopologyを作成するか、
または別個Storm-Starterからソースをダウンロード後、最新版のStormに合わせて更新して使用する必要がありました。
#実はStorm-StarterにはStormの最新版を適用するとコンパイルエラーが発生する時期がありました^^;

ですが、Storm-0.9.2からはStormの媒体に常に最新のStormに合わせたStorm-Starterが用意されるようになりました。
よりStormを簡単に試すことが出来るようになったと言えると思います。

Storm-UIにREST APIが追加

Topology可視化ツールとも関連するのですが、
Storm-UIに下記のことが可能なREST APIが追加されました。

  • Stormクラスタの情報取得
  • StormSupervisorの情報取得
  • StormTopologyの情報取得
  • Topology中の各コンポーネントの情報取得
  • Topologyの停止/再開/リバランス/終了

それまでは画面から操作するか、Storm-Nimbusに対してThriftでメッセージを飛ばすしかなかったため、
REST APIの追加によってStormクラスタの管理を別プロセスから行う・・ということが行いやすくなりました。

その他のStorm-0.9.2の新機能/修正点

これまでで主要な更新点を説明してきましたが、
その他にも下記のようにStorm-0.9.2には多くの修正点があります。
Storm-0.9.0系に更新する際に大きく構成が変更になっているため、
そこから発生した問題を一気に修正しているようです。

  • CPU数に応じたスケーラビリティ向上
  • Nettyによるメッセージ転送の改善
  • 冗長な性能メトリクス送信の除去
  • Storm-Kafkaの信頼性向上
  • ZooKeeperに対するHeartBeat負荷の低減
  • 言語間のやり取りを行う際のシリアライザをプラガブルに修正

Storm-0.9.2になって結局何が嬉しいか?

Storm-0.9.2はマイナーバージョンアップという位置づけのためか、
Stormのコア部分に機能が追加されるということはありませんでした。

ですが、Topology可視化ツールをはじめとした「使いやすくする」修正が行われています。

Topology可視化ツール自体が表示している情報自体はStorm-UIで元々表示していた情報です。
ですが、これまではStormに慣れた人間でないと正確にその情報を読み解けない、というのが今まででした。
可視化ツールの追加によってそれが誰であっても概要を読み取れるようになったのは大きいと思います。

そのため、Storm-0.9.2は「Stormをより使いやすくするバージョンアップ」と位置づけられると思います。
これを機に、これまで使ったことが無い方も是非Stormを使ってみてください。

それでは。

Acroquest Technologyでは、キャリア採用を行っています。


  • 日頃勉強している成果を、Hadoop、Storm、NoSQL、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
 キャリア採用ページ