web-dev-qa-db-ja.com

Spark糸の概念の理解について

私はsparkがYARNクラスター/クライアントでどのように実行されるかを理解しようとしています。次の疑問が頭にあります。

  1. sparkがyarnクラスターのすべてのノードにインストールされている必要がありますか?クラスターのワーカーノードがタスクを実行し、=のコード(spark API) sparkドライバーによってクラスターに送信されたアプリケーション?

  2. ドキュメントでは、「HADOOP_CONF_DIRまたはYARN_CONF_DIRは、Hadoopクラスターの(クライアント側の)構成ファイルを含むディレクトリを指します。 "クライアントノードがクラスターにジョブを送信するときにHadoopをインストールする必要があるのはなぜですか?

37
Sporty

spark YARNでジョブを実行しています(HDP 2.2を使用)。

spark=はクラスターにインストールされていません。Spark Assembly jarをHDFSに追加しただけです。

たとえば、Piの例を実行するには:

./bin/spark-submit \
  --verbose \
  --class org.Apache.spark.examples.SparkPi \
  --master yarn-cluster \
  --conf spark.yarn.jar=hdfs://master:8020/spark/spark-Assembly-1.3.1-hadoop2.6.0.jar \
  --num-executors 2 \
  --driver-memory 512m \
  --executor-memory 512m \
  --executor-cores 4 \
  hdfs://master:8020/spark/spark-examples-1.3.1-hadoop2.6.0.jar 100

--conf spark.yarn.jar=hdfs://master:8020/spark/spark-Assembly-1.3.1-hadoop2.6.0.jar-この設定は、ヤーンにsparkアセンブリを使用することを指示します。使用しない場合、実行したjarをアップロードしますspark-submit

2番目の質問について:クライアントノードにHadoopをインストールする必要はありません。構成ファイルのみが必要です。クラスターからクライアントにディレクトリをコピーできます。

26
RanP

他の回答に追加します。

  1. sparkがyarnクラスターのすべてのノードにインストールされている必要がありますか?

No、sparkジョブがYARN(clientまたはclusterモードのいずれか)でスケジューリングされている場合。] Spark スタンドアロンモード の場合のみ、多くのノードでインストールが必要です。

これらはsparkアプリ展開モードの視覚化です。

Spark Standalone Cluster Spark standalone mode

clusterモードではdriverが座っていますSpark Worker nodeの一方はclientモードはジョブを起動したマシン内になります。


YARNクラスターモード YARN cluster mode

YARNクライアントモード YARN client mode

次の表に、これらのモードの違いの簡潔なリストを示します。

differences among Standalone, YARN Cluster and YARN Client modes

pics source

  1. ドキュメントには、「HADOOP_CONF_DIRまたはYARN_CONF_DIRがHadoopクラスターの(クライアント側)構成ファイルを含むディレクトリを指していることを確認する」と書かれています。クライアントノードがクラスターにジョブを送信するときにHadoopをインストールする必要があるのはなぜですか?

Hadoopのインストールは必須ではありませんただし、構成(すべてではない)は必須です! ゲートウェイノードとして呼び出すことができます。これには2つの主な理由があります。

  • HADOOP_CONF_DIRディレクトリに含まれる設定は、アプリケーションで使用されるすべてのコンテナが同じ設定を使用するように、YARNクラスターに配布されます。
  • YARNモードでは、ResourceManagerのアドレスはHadoop設定(yarn-default.xml)から取得されます。したがって、--masterパラメーターはyarnです。


更新:(2017-01-04)

Spark 2.0+ ファットアセンブリjarは不要になりました実稼働展開用。 ソース

29
mrsrinivas

1-Sparkスレーブ/マスターアーキテクチャに従う場合。したがって、クラスタにspark masterおよびN sparkスレーブ。スタンドアロンモードでsparkを実行できます。ただし、Yarnアーキテクチャを使用するといくつかの利点が得られます。これについては非常に適切な説明があります: http:/ /blog.cloudera.com/blog/2014/05/Apache-spark-resource-management-and-yarn-app-models/

2-たとえばYarnやHDFSを使用する場合は必要ですが、前に述べたように、スタンドアロンモードで実行できます。

1
Junayy