コース概要:
1、嵐の基本的な導入
2、嵐のアーキテクチャモデル
3、嵐のインストール
図4に示すように、UI管理インターフェースを嵐
5、嵐のプログラミングモデル
6、嵐エントリ手順
7、嵐の並列処理
8、嵐の配布ポリシーのメッセージ
9、ストロムGETカフカと統合
10、リアルタイムかんばん統合ケース
1、嵐の基本的な導入
嵐の公式ウェブサイト:http://storm.apache.org/
処理速度が速くなり、最も古いバージョンの一つは0.8.0で、オープンソースを提供する会社をさえずり
海岸線の認知の無知長く大きな島、
ストームは、分散リアルタイムコンピューティングシステム、オープンソース、データ・ストリームのシンプルで信頼性の高いプロセス大量です。ストームは、多くの利用シナリオを持っていますので、上のリアルタイム解析の場合、オンライン機械学習、継続的なコンピューティング、分散RPC、ETLと。各メッセージは(小さいクラスタに、各ノードは秒あたりのメッセージの数百万人を処理することができる)処理され、処理速度が高速であることを保証するために高い耐障害性を有する支持延長の嵐レベル。嵐の展開と運用・保守は非常に便利ですが、もっと重要なのは、あなたがアプリケーションを開発するために、任意のプログラミング言語を使用することができます。
ストームは、次の特性があります。
- シンプルなプログラミングモデル
私は、並列バッチプログラムは非常にシンプルで美しい大規模データ処理となり、元の言語を削減、実装削減/それは地図ベースのHadoop Googleマップを開発者に提供し、我々はHadoopのに親しまれてきたと信じています。同様に、嵐も大幅にあなたに迅速かつ効率的なアプリケーション開発を支援するために、並列リアルタイム処理タスクを開発の複雑さを軽減する大規模なデータをリアルタイムで計算いくつかの簡単な美しいプリミティブを提供します。
- スケーラブル
作業プロセス、スレッドおよびタスク:嵐は本当に三つの主要なエンティティのクラスター・トポロジーで実行されます。各マシンは、嵐のクラスタを処理し、複数のワーカー上の各ワーカープロセスを実行するだけでなく、複数のスレッドを作成することができ、各スレッドが複数のタスクを実行することができ、タスクが真のエンティティデータ処理で、我々は注ぎ口を開発しています、ボルトは、実行するために1つ以上のタスクの方法としてあります。
したがって、複数のスレッド、プロセス、およびサーバのサポートフレキシブル水平膨張の間で並列コンピューティングタスク。
- 高信頼性
嵐は、S4のような直接的な場所他のリアルタイムシステム、異なっており、それぞれのメッセージ送信注ぎ口は、「完全に処理する」ことができることを保証することができます。
、画像はメッセージがスパウト根を送信されたメッセージのツリーとして理解することができるメッセージ送信フォローアップのスパウトがメッセージの数千を生成するトリガすることができることに留意されたい、嵐のみ、メッセージ・ツリーのツリー取り扱いを追跡しますメッセージツリーツリー内のすべてのメッセージが処理されたとき、嵐がニュースの注ぎ口の問題は「完全に処理。」されていると思うだろう メッセージツリーツリー処理中のメッセージのいずれかが失敗した、または限られた時間のための全粒メッセージツリーは「完全プロセス」でない場合、メッセージは、注ぎ口の再送を送信されます。
メモリ消費を最小限に抑えることを考慮すると、嵐のではなく、全体としてのメッセージ・ツリーは、メッセージツリー内のすべてのメッセージを追跡するための特別な戦略を使用して、各メッセージのメッセージツリーを、追跡することはありませんユニークID次いでXORは、注ぎ口を介して送信されたゼロのメッセージは優れた省メモリであり、このメカニズムの背後に決定ロジックについて詳細に説明する簡略化する「完全プロセス」か否かが判定されます。
このモデルは、それぞれがメッセージを送信し、/フェイル同期ACKが送信され、信頼性があまり要求された場合、オフモードを使用して、異なるインターフェースを発することができ、消費のためにいくつかのネットワーク帯域幅が存在するであろう。
前述した、嵐は、各メッセージが少なくとも一度に処理されることを保証しますが、いくつかのコンピューティングの状況のため、厳密幸いストーム0.7.0は、トランザクションのトポロジがこの問題を解決するため導入し、各メッセージは一度だけ処理されていることを要求されます、後に詳細に説明します。
- 高い耐障害性
ニュースの過程でいくつかの異常出た場合、ストームは、処理ユニットの問題を再手配します。ストーム(あなたが明示的に処理単位を殺していない限り)処理部は永遠に実行されることを保証します。
処理部は、中間の状態で保存されている場合はもちろん、処理ユニットは嵐を再起動され、その後とき、あなたは自分自身の回復過程の中間状態を適用する必要があります。
- 複数のプログラミング言語のサポート
javaので注ぎ口やボルトの実装に加えて、あなたはまた、いわゆるストーム多言語プロトコルに、あなたがたのうち、仕事をするためのプログラミング言語に精通しているすべての感謝を使用することができます。多ストームプロトコルは、複数の行またはJSON符号化にテキストの単一行を通るメッセージ配信のための標準入力と標準出力を使用して、注ぎ口またはボルトを可能にする特別なプロトコル、メッセージ内にあります。
ストームは、これらのクラスはIBoltとISpoutインターフェイスを実装実装、およびJavaスクリプトやプログラムによって合意を実行するためにProcessBuilderをクラスの殻をできるように、主にShellBolt、ShellSpoutとShellProcessこれらのクラスを介して、多言語のプログラミングをサポートしています。
治療の各タプルはスループットに大きな影響力を持っているため、コーデックJSONを必要とするときには、この方法では、ことがわかります。
- ローカルモードをサポートしています
ストームは、同様のトポロジーは、私たちはそれを開発し、テストするために有用であるローカルモードで実行しているクラスタ・トポロジ、上で実行されていると、プロセス内のすべての機能嵐クラスタのアナログである「ローカルモード」を有します。
- 効率的
MapReduceのと比較すると:
嵐速く、MapReduceの遅く
ストロムは、MapReduceのは、データ処理の束で、ストリーミングされます
最終的にはそれが機能:ストリーミング、処理速度