リアルタイムデータ処理プラットフォームTwitterの嵐(rpm)を開きます。

でホストされている分散、フォールトトレラントのリアルタイムコンピューティングシステム、あるTwitterの嵐だろう正式にオープンソース、GitHubの上では、Eclipseのパブリックライセンス1.0に従ってください。嵐がBackTypeによって開発されたリアルタイム処理システムであり、BackTypeはツイッターの指揮下になりました。GitHubの上の最新バージョンは0.5.2嵐である、それは基本的にされてClojureの書かれました。

嵐は、分散型リアルタイムシステムは、プリミティブの共通セットがメッセージを処理するリアルタイムのうち「ストリーム処理」するために使用され、データベースを更新することができる提供しています。これは、キューと労働者のクラスタを管理するための別の方法です。嵐はまた、「連続的な計算」(連続計算)、連続的なクエリを作成するためのデータフローに使用することができ、結果は、計算におけるストリームでユーザに出力されます。また、並列運転で実行するように、「分散RPC」に高価使用することができます。ネイサンマルツの嵐のチーフエンジニア、言いました:

嵐が容易クラスタ内のコンピュータの書き込み等、複雑なリアルタイムシステム、嵐のリアルタイム処理を展開することができる  のHadoopが バッチにあります。ストームは、各メッセージが処理されることを保証しますが、それはすぐに-小さなクラスタに秒あたりのメッセージ数百万を扱うことができます。さらに良いことに、あなたが開発を行うために、任意のプログラミング言語を使用することができるということです。

次のように主な特徴がある嵐:

  1. シンプルなプログラミングモデル。同様のMapReduceが並列バッチ処理の複雑さを低減する、嵐は、リアルタイム処理の複雑さを低減します。
  2. あなたは、さまざまなプログラミング言語を使用することができます。あなたは嵐の上にさまざまなプログラミング言語を使用することができます。デフォルトサポートのClojure、Javaの、ルビー、とPython。他の言語のサポートを追加するには、ちょうど嵐にシンプルな通信プロトコルを実装します。
  3. フォールトトレランス。ストームは、管理プロセスおよびノー​​ドを障害します。
  4. 水平展開。計算は、複数のスレッド、プロセス、およびサーバー間で並行して行われます。
  5. 信頼性の高いメッセージング。ストームは、少なくとも一度、各メッセージは完全に治療を受けることを保証します。タスクが失敗した場合、それはメッセージの再試行メッセージの送信元の責任となります。
  6. 速いです。メッセージを確保するためのシステム設計は、使用して、迅速に対処することができØMQをその基礎となるメッセージキューとして。
  7. ローカルモード。嵐は、プロセスに完全に嵐クラスタをシミュレートすることができ、「ローカルモード」を持っています。これは、あなたがすぐに開発し、ユニットテストすることができます。

嵐のクラスタは、一つのマスタノードと複数のジョブ・ノードで構成されています。マスターノードは、コードの割り当てタスクと障害検出を割り当てるための「ニンバス」デーモンと呼ばれるプログラムを実行します。各ワーカーノードは、監視作業、開始と終了の作業プロセスのための「スーパーバイザー」デーモンと呼ばれるプログラムを実行します。ニンバスとスーパーバイザーはすぐに失敗すると、彼らは非常に強くなるように、Apacheのよる2つの間の調整、ステートレスでできる  のZooKeeperが完了します。

この用語は、嵐ストリーム、スパウト、ボルト、タスク、ワーカー、ストリームグループ化およびトポロジを含みます。ストリームデータが処理されます。スプラウトは、データ・ソースです。ボルト処理データ。タスクはスレッドにスパウトまたはボルト上で実行されています。これらのプロセスを実行するワーカースレッド。入力データとして何かを受信ボルトのストリームグループ化条項。データは(と呼ばれるシャッフル)をランダム化し、またはフィールドの値に基づいて割り当てられ(フィールドと呼ばれる)、または放送(すべてと呼ばれる)、または常にタスク(用語グローバル)を発行し、(データに関する用語を気にしないことがありすることができます(ダイレクト)と呼ばれるかを決定するなし)、またはカスタム・ロジックではありません。トポロジーは、ボルトストリームグループスパウト及びネットワークノードによって接続されています。嵐の中でコンセプトページでは、これらの用語の詳細な説明を持っています。

ストームは、同等のシステムエスパー、Streambase、HStreamingとYahoo S4することができます。これは嵐とS4に最も近いです。最大の違いは、嵐がメッセージが処理されることを保証することです。これらのシステムのいくつかは内蔵されているストームあるデータ記憶層、持っていない、あなたが永続性を必要とする場合は、あなたが同様のカサンドラまたはRiakに、このような外部データベースを使用することができます。

始めるための最善の方法は、GitHubのを読んだ上で公式「嵐のチュートリアル」です。あなたはどちらの嵐トポロジを実行できるように、コードの例を提供し、様々な嵐と抽象的な概念を説明します。開発プロセスでは、ローカルモードの嵐の中で実行することができ、我々はプロセスでトポロジをテストし、地域の発展にできるように。すべての準備が整った場合には、リモートモードで実行されている嵐は、トポロジがクラスタ内で実行するために提出しました。Mavenのユーザーがclojars.org提供嵐依存性、アドレスhttp://clojars.org/repoを使用することができます。

ストームは、あなたがApacheの飼育係、ØMQ、JZMQ、Java 6のやPython 2.6.6必要な、クラスタを実行します。ZooKeeperの異なる成分のクラスタを管理するために使用され、ØMQ内部メッセージングシステムであり、JZMQは、JavaのØMQは結合です。嵐・デプロイと呼ばれるサブプロジェクトは、AWS上で展開ストームクラスタをワンクリックすることができ、があります。詳細な手順については、嵐のWikiの「嵐クラスタの設定」をお読みください。

ソフトウェアは、InfoQのからコンテンツを紹介します

ます。https://my.oschina.net/xiaominmin/blog/551086で再現

おすすめ

転載: blog.csdn.net/weixin_34088583/article/details/92520304