糸のスパークの2つのモードの詳細な説明(これは非常に重要です)

はじめに: Sparkアプリケーションがクラスターに送信されて実行される場合、アプリケーションアーキテクチャは2つの部分で構成されます

  • ドライバープログラム(リソースアプリケーションとジョブ実行のスケジューリング)
  • エグゼキュータ(タスクタスクの実行とジョブでのデータのキャッシュ)、どちらもJVMプロセスプロセスです

ここに写真の説明を挿入

1:ドライバープログラムを実行する場所は、-deploy-modeで指定できます。

クリア:ドライバーは、アプリケーションのmain()関数を実行し、SparkContextを作成して、アプリケーションのmain()関数を実行し、SparkContextを
作成するプロセスを指します。

  • client:アプリケーションを送信するクライアントでドライバーが実行されていることを示します(デフォルト)

  • cluster:ドライバーがクラスターで実行されていることを示します(スタンドアロン:Worker、YARN:NodeManager)

  • クラスターモードとクライアントモードの最も重要な違いは、ドライバープログラムが実行される場所です。
    企業の実際の実稼働環境でクラスターを使用する

1.クライアントモード
  • DeployModeはクライアントです。これは、アプリケーションドライバープログラムが送信アプリケーションクライアントのホストで実行されていることを意味します。
    図:
    ここに写真の説明を挿入
    クライアントモードテストpi:
SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn  \
--deploy-mode client \
--driver-memory 512m \
--executor-memory 512m \
--num-executors 1 \
--total-executor-cores 2 \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \
10

ここに写真の説明を挿入
YarnのwebUIビューの結果:
ここに写真の説明を挿入

2.実稼働環境用のクラスター(クラスター)モード
  • DeployModeはクラスターです。これは、アプリケーションドライバープログラムがクラスタースレーブノードのマシンで実行されていることを意味します。

図:
ここに写真の説明を挿入
Piテスト:

SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-memory 512m \
--executor-memory 512m \
--num-executors 1 \
--total-executor-cores 2 \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \
10

ここに写真の説明を挿入
糸的webUI:
ここに写真の説明を挿入

タスクを入力して、ログの
ここに写真の説明を挿入
ここに写真の説明を挿入
概要を表示します
クライアントモードとクラスターモード最も重要な違いは次のとおりです。ドライバープログラムはどこで実行されていますか。

  • クライアントモード:テスト中に使用され、開発の必要はありません
    。1。ドライバーはクライアントで実行され、クラスターとの通信コストが高い
    2.ドライバーの出力結果がクライアントに表示されることを理解してください。
  • クラスターモード:実稼働環境でこのモードを使用します。1。
    ドライバープログラムがYARNクラスターにあり、クラスターとの通信コストが低い
    。2
    ドライバーの出力結果クライアントに表示できない。3。このモードでは、ドライバーはYarnによって管理されるApplicationMasterノードで実行されます。問題がある場合、yarnはApplicationMaster(ドライバー)を再起動します
3.2つのモードの詳細なフローチャート

クライアントモード:
ここに写真の説明を挿入

クラスターモード:
ここに写真の説明を挿入

付録: Sparkクラスターでの役割

  • 1)ドライバー:これはJVMプロセスプロセスであり、作成されたSparkアプリケーションはドライバー上で実行され、ドライバープロセスによって実行されます。
  • 2)マスター(ResourceManager):これはJVMプロセスプロセスであり、主にリソースのスケジューリングと割り当てを担当し、クラスターの監視とその他の責任を実行します。
  • 3)ワーカー(NodeManager):これはJVMプロセスです。ワーカーはクラスター内のサーバー上で実行されます。主に2つの責任を負います。1つはRDDの1つまたはいくつかのパーティションを独自のメモリに格納することであり、もう1つは他のプロセスとスレッド(Executor)を開始して、RDDのパーティションで並列処理と計算を実行します。
  • 4)エグゼキュータ:JVMプロセスです。複数のエグゼキュータをワーカー(NodeManager)で実行できます。エグゼキュータは、RDDの定義を実行する複数のスレッド(タスク)を開始することにより、RDDパーティションで並列計算を実行します。 map、flatMap、reduceなどのオペレーター操作。

おすすめ

転載: blog.csdn.net/m0_49834705/article/details/112557164