ビッグデータストームのSparkおよびHadoopに対する利点は何ですか

要約:  1.ビッグデータの初心者の多くは、ストロームとは何かを知らない可能性があります。ストロム:分散リアルタイムコンピューティングシステムについて紹介します。リアルタイムコンピューティングのストームの意味は、バッチ処理のhadoopの意味と似ています。

1.ビッグデータを初めて使用する多くの人は、ストロームとは何かを知らない可能性があります。まず、ストロム:
分散リアルタイムコンピューティングシステムについて紹介します。リアルタイムコンピューティングのストームの意味は、バッチ処理のhadoopの意味と似ています。
嵐の該当シーン。
ストリーミングデータ処理。Stormを使用して着信メッセージを処理し、処理後に結果をストレージに書き込むことができます。
分散RPC。Stormの処理コンポーネントは分散されており、処理遅延は非常に小さいため、一般的な分散RPCフレームワークとして使用できます。もちろん、実際には、検索エンジン自体も分散RPCシステムです


次に、ストーム、スパーク、およびHadoopの特性を見てみましょう。
ストーム:リアルタイムを強調する分散リアルタイムコンピューティング。リアルタイム要件が高い場所でよく使用されます
。Hadoop:分散バッチコンピューティング、バッチ処理を強調する、一般的に使用されます。データマイニングと分析の場合、
Spark:はインメモリコンピューティングに基づくオープンソースクラスターコンピューティングシステムであり、データ分析を高速化することを目的としています。SparkはHadoopと同様のオープンソースクラスターコンピューティング環境ですが、2つの間にいくつかの違いがありますこれらの有用な違いにより、Sparkは特定のワークロードでのパフォーマンスを向上させます。つまり、Sparkは、インタラクティブなクエリを提供するだけでなく、メモリ分散データセットを有効にし、反復的なワークロードを最適化することもできます。
3. stromの利点

  1. シンプルなプログラミング
    誰もがビッグデータ処理のhadoopに精通していると思います。GoogleMap/ Reduceに基づくHadoopは、開発者にマップと削減プリミティブを提供し、並列バッチ処理を非常にシンプルで美しいものにします。同様に、Stormはビッグデータのリアルタイムコンピューティングのためのシンプルで美しいプリミティブも提供します。これにより、並列リアルタイム処理の開発タスクの複雑さが大幅に軽減され、アプリケーションを迅速かつ効率的に開発できます。
    MapとReduceの2つの操作のみを提供するHadoopとは異なり、Sparkによって提供されるデータセット操作には多くのタイプがあります。map、filter、flatMap、sample、groupByKey、reduceByKey、union、join、cogroup、mapValues、sort、partionBy、その他のタイプの操作など、これらの操作を変換と呼びます。同時に、カウント、収集、削減、ルックアップ、保存などのアクションも提供します。これらのさまざまなデータセット操作タイプは、上位層のユーザーに便利です。さまざまな処理ノード間の通信モデルは、Hadoopのような唯一のデータシャッフルモードではなくなりました。ユーザーは、中間結果のパーティションに名前を付け、具体化し、制御することができます。プログラミングモデルは、Hadoopよりも柔軟性があると言えます。ビッグデータを体系的に学びたい場合は、ビッグデータテクノロジーに参加し控除を学ぶことができます522189307
  2. 多言語サポート
    javaを使用して注ぎ口とボルトを実装することに加えて、Stormのいわゆる多言語プロトコルのおかげで、この作業を完了するために使い慣れたプログラミング言語を使用することもできます。マルチ言語プロトコルは、Storm内の特別なプロトコルで、スパウトまたはボルトがメッセージ配信に標準入力と標準出力を使用できるようにします。渡されるメッセージは、1行のテキストまたは複数行のjsonエンコーディングです。
    Stormは、主にShellBolt、ShellSpout、ShellProcessを介した多言語プログラミングをサポートしています。これらのクラスは、IBoltおよびISpoutインターフェースと、シェルがJava ProcessBuilderクラスを介してスクリプトまたはプログラムを実行できるようにするプロトコルを実装しています。
    このように、各タプルは処理時にjsonエンコードおよびデコードを実行する必要があるため、スループットに大きな影響を与えることがわかります。
  3. 水平方向の拡張をサポート
    Stormクラスターでトポロジーを実際に実行する3つの主要なエンティティがあります。ワーカープロセス、スレッド、タスクです。Stormクラスタ内の各マシンは複数のワーカープロセスを実行でき、各ワーカープロセスは複数のスレッドを作成できます。各スレッドは複数のタスクを実行できます。タスクは、実際にデータ処理を実行するエンティティです。ボルトは1つ以上のタスクとして実行されます。
    したがって、計算タスクは複数のスレッド、プロセス、およびサーバー間で並列に実行され、柔軟な水平方向の拡張をサポートします。
  4. 強力なフォールトトレランス
    メッセージの処理中に問題が発生した場合、Stormは障害のある処理ユニットを再配置します。ストームは、処理ユニットが永久に実行されることを保証します(処理ユニットを明示的に強制終了しない限り)。
  5. 信頼性の高いメッセージ保証
    Stormは、spoutによって送信されたすべてのメッセージを「完全に処理」できることを保証できます。これも、S4などの他のリアルタイムシステムとは直接異なります。
  6. 高速なメッセージ処理
    基礎となるメッセージキューとしてZeroMQを使用して、メッセージを迅速に処理できるようにします。
  7. ローカルモード、迅速なプログラミングテストをサポート
    Stormには、プロセス内のStormクラスターのすべての機能をシミュレートする「ローカルモード」があります。ローカルモードでのトポロジの実行は、クラスターでのトポロジの実行に似ています。これは、開発とテストにとって非常に重要です。便利です。
207の元の記事を公開 賞賛5 40,000+ビュー

おすすめ

転載: blog.csdn.net/mnbvxiaoxin/article/details/105081704