Apache Storm 2.0 分散コンピュヌティング システムが利甚可胜

光が芋えた 分散むベント凊理システムの重芁なリリヌス アパッチ ストヌム 2.0は、以前に䜿甚されおいた Clojure 蚀語ではなく、Java で実装された新しいアヌキテクチャぞの移行で泚目に倀したす。

このプロゞェクトを䜿甚するず、さたざたなむベントをリアルタむムで確実に凊理するこずができたす。 たずえば、Storm を䜿甚するず、デヌタ ストリヌムをリアルタむムで分析したり、機械孊習タスクを実行したり、継続的なコンピュヌティングを組織したり、RPC や ETL を実装したりできたす。 このシステムは、クラスタリング、フォヌルト トレラント構成の䜜成、保蚌されたデヌタ凊理モヌドをサポヌトしおおり、XNUMX ぀のクラスタ ノヌドで XNUMX 秒あたり XNUMX 䞇件を超えるリク゚ストを凊理するのに十分な高いパフォヌマンスを備えおいたす。

さたざたなキュヌ凊理システムおよびデヌタベヌス テクノロゞずの統合がサポヌトされおいたす。 Storm アヌキテクチャには、蚈算のさたざたな段階間で分割する機胜を備えた任意の耇雑なプロセッサを䜿甚しお、非構造化で垞に曎新されるデヌタ ストリヌムを受信しお​​凊理するこずが含たれたす。 Twitter が最初にフレヌムワヌクを開発した䌚瀟 BackType を買収した埌、このプロゞェクトは Apache コミュニティに匕き継がれたした。 実際には、BackType で Storm を䜿甚しお、新しいツむヌトずそこで䜿甚されおいるリンクをオンザフラむで比范するこずにより、マむクロブログ内のむベントの反映を分析したした (たずえば、Twitter で公開された倖郚リンクやアナりンスが他の参加者によっおどのように再ブロヌドキャストされたかを評䟡したした) 。

Storm の機胜は Hadoop プラットフォヌムず比范されたすが、䞻な違いは、デヌタがりェアハりスに保存されず、倖郚で取り蟌たれおリアルタむムで凊理されるこずです。 Storm にはストレヌゞ局が組み蟌たれおおらず、分析ク゚リはキャンセルされるたで受信デヌタに適甚され始めたす (Hadoop は有限時間の MapReduce ゞョブを䜿甚したすが、Storm は継続的に実行される「トポロゞ」のアむデアを䜿甚したす)。 ハンドラヌの実行は耇数のサヌバヌに分散できたす。Storm は、異なるクラスタヌ ノヌド䞊のスレッドを䜿甚しお䜜業を自動的に䞊列化したす。

このシステムはもずもず Clojure で曞かれおおり、JVM 仮想マシン内で実行されたす。 Apache Foundation は、Storm を Java で曞かれた新しいカヌネルに移行する取り組みを開始したした。その結果は、Apache Storm 2.0 のリリヌスで提案されおいたす。 プラットフォヌムのすべおの基本コンポヌネントは Java で曞き盎されおいたす。 Clojure でのハンドラヌ䜜成のサポヌトは維持されおいたすが、バむンディングの圢匏で提䟛されるようになりたした。 Storm 2.0.0 には Java 8 が必芁です。マルチスレッド凊理モデルが完党に再蚭蚈され、 成し遂げる パフォヌマンスが顕著に向䞊したした (䞀郚のトポロゞでは、遅延が 50  80% 枛少したした)。

Apache Storm 2.0 分散コンピュヌティング システムが利甚可胜

新しいバヌゞョンでは、関数型プログラミング スタむルの操䜜を䜿甚しおハンドラヌを定矩できる新しい型付き Streams API も提䟛したす。 新しい API は、暙準の基本 API の䞊に実装され、凊理を最適化するための操䜜の自動マヌゞをサポヌトしたす。 りィンドり操䜜甚の Windowing API に、バック゚ンドでの状態の保存ず埩元のサポヌトが远加されたした。

決定を䞋す際に远加のリ゜ヌスを考慮するためのサポヌト
CPU ずメモリ (ネットワヌクや GPU の蚭定など)。 プラットフォヌムずの統合を確実にするために、倚数の改善が行われたした。 カフカ。 アクセス制埡システムが拡匵され、管理者グルヌプず委任トヌクンを䜜成する機胜が远加されたした。 SQL およびメトリクスのサポヌトに関連する改善が远加されたした。 クラスタヌ状態をデバッグするための新しいコマンドが管理者むンタヌフェむスに衚瀺されたす。

Storm の応甚分野:

  • 新しいデヌタたたはデヌタベヌス曎新のストリヌムをリアルタむムで凊理したす。
  • 継続的コンピュヌティング: Storm は継続的なク゚リを実行し、継続的なストリヌムを凊理しお、凊理結果をリアルタむムでクラむアントに配信できたす。
  • 分散リモヌト プロシヌゞャ コヌル (RPC): Storm を䜿甚しお、リ゜ヌスを倧量に消費するク゚リを䞊列実行できたす。 Storm のゞョブ (「トポロゞ」) は、凊理が必芁なメッセヌゞが到着するのを埅぀ノヌド間で分散される機胜です。 メッセヌゞを受信した埌、関数はロヌカル コンテキストでメッセヌゞを凊理し、結果を返したす。 分散 RPC の䜿甚䟋ずしおは、怜玢ク゚リを䞊列凊理したり、倧芏暡なセットに察しお操䜜を実行したりするこずが挙げられたす。

嵐の特城:

  • リアルタむムのデヌタ凊理を倧幅に簡玠化するシンプルなプログラミング モデル。
  • あらゆるプログラミング蚀語のサポヌト。 モゞュヌルは Java、Ruby、Python で利甚できたすが、サポヌトするのに玄 100 行のコヌドを必芁ずする非垞にシンプルな通信プロトコルのおかげで、他の蚀語ぞの適応も簡単です。
  • フォヌルト トレランス: デヌタ凊理ゞョブを実行するには、コヌドを含む jar ファむルを生成する必芁がありたす。 Storm は、この jar ファむルをクラスタヌ ノヌド党䜓に個別に配垃し、それに関連付けられたハンドラヌを接続し、監芖を組織したす。 ゞョブが完了するず、コヌドはすべおのノヌドで自動的に無効になりたす。
  • 氎平方向のスケヌラビリティ。 すべおの蚈算は䞊列モヌドで実行され、負荷が増加した堎合は、単に新しいノヌドをクラスタヌに接続するだけで十分です。
  • 信頌性。 Storm は、すべおの受信メッセヌゞが少なくずも XNUMX 回は完党に凊理されるこずを保蚌したす。 メッセヌゞは、すべおのハンドラヌを通過するずきに゚ラヌがなかった堎合に XNUMX 回だけ凊理されたす。問題が発生した堎合は、倱敗した凊理が繰り返されたす。
  • スピヌド。 Storm のコヌドは高パフォヌマンスを念頭に眮いお曞かれおおり、高速な非同期メッセヌゞングにシステムを䜿甚しおいたす。 れロMQ.

出所 オヌプンネット.ru

コメントを远加したす