Apache ストームの概要
Apache Storm とは何ですか?
Apache Storm は、分散型リアルタイムビッグデータ処理システムです。 Storm は、フォールトトレラントかつ水平方向にスケーラブルなアプローチで大量のデータを処理できるように設計されています。これは、最も高い取り込みレートを備えたストリーミング データ フレームワークです。 Storm はステートレスですが、Apache ZooKeeper を通じて分散環境とクラスターの状態を管理します。シンプルで、ライブデータに対してさまざまな操作を並行して実行できます。
Apache Storm は、リアルタイム データ分析のリーダーであり続けます。 Storm はセットアップと操作が簡単で、各メッセージがトポロジを通じて少なくとも 1 回処理されることが保証されます。
Apache Storm と Hadoop
基本的に、ビッグ データの分析には Hadoop フレームワークと Storm フレームワークが使用されます。この 2 つは互いに補い合いますが、いくつかの点で異なります。 Apache Storm は永続化以外のすべてを実行しますが、Hadoop はすべてのことに優れていますが、リアルタイム計算には遅れます。次の表は、Storm と Hadoop のプロパティを比較しています。
#Storm | Hadoop |
リアルタイム ストリーム処理 | バッチ処理 |
##ステートレスステートフル | |
ZooKeeperに基づくマスター/スレーブ アーキテクチャと調整。マスター ノードは nimbus と呼ばれ、スレーブ ノードは supervisors です。 ZooKeeper ベースの調整あり/なしのマスター/スレーブ構造。マスター ノードは | Job Tracker、スレーブ ノードは Task Tracker です。 |
ストーム ストリーミング プロセスは、クラスター上で 1 秒あたり数万のメッセージにアクセスできます。 Hadoop 分散ファイル システム (HDFS) は、MapReduce フレームワークを使用して、数分から数時間かかる大量のデータを処理します。 | |
Storm トポロジは、ユーザーがシャットダウンするか、予期しない回復不能な障害が発生するまで実行されます。 MapReduce ジョブは順番に実行され、最終的に完了します。 | |
両方とも分散型でフォールトトレラントです |
ニンバス/スーパーバイザーが停止した場合は、次から再起動します。そのままなので何も影響はありません。 JobTracker がクラッシュすると、実行中のジョブはすべて失われます。 | |
Apache Storm の使用例
Apache Storm は、リアルタイムのビッグ データ ストリーム処理で非常に有名です。したがって、ほとんどの企業は、システムの不可欠な部分として Storm を使用しています。いくつかの注目すべき例は次のとおりです -
Twitter - Twitter は Apache Storm を「パブリッシャー分析製品」として使用しています。 「パブリッシャー分析製品」は、Twitter プラットフォーム内のすべてのツイートとクリックを処理します。 Apache Storm は Twitter インフラストラクチャと深く統合されています。
NaviSite - NaviSite は、イベント ログ監視/監査システムに Storm を使用しています。システム内で生成されたすべてのログは Storm を通過します。 Storm は、設定された正規表現のセットと照合してメッセージをチェックし、一致するものがあれば、その特定のメッセージがデータベースに保存されます。
Wego - Wego は、シンガポールに拠点を置く旅行メタ検索エンジンです。旅行関連のデータは、世界中のさまざまな時期の多くのソースから取得されます。 Storm は、Wego がリアルタイム データを検索し、同時実行の問題を解決し、エンド ユーザーに最適なデータを見つけるのに役立ちます。
Apache Storm の利点
Apache Storm によって提供される利点のリストは次のとおりです:
Storm はオープンソースで強力です。 、 使いやすい。中小企業でも大企業でもご利用いただけます。
Storm は耐障害性、柔軟性、信頼性が高く、あらゆるプログラミング言語をサポートしています。
リアルタイム ストリーミングを可能にします。
Storm はデータ処理能力が非常に高いため、信じられないほど高速です。
Storm は、リソースを直線的に増加させることで、負荷が増加してもパフォーマンスを維持できます。拡張性が高いです。
Storm はデータの更新を実行し、問題に応じて数秒または数分でエンドツーエンドで応答を提供します。遅延が非常に低いです。
Storm には運用インテリジェンスがあります。
Storm は、クラスター内の接続されたノードが停止したり、メッセージが失われたりした場合でも、保証されたデータ処理を提供します。