2016-12-16 9 views
1

クラスタモードでYARN上で動作するApache Sparkに関する質問があります。 this threadによると、クラスタ内のすべての(作業者)ノードにSpark自体をインストールする必要はありません。私の問題はスパークエグゼキュータです:一般的に、YARNまたはリソースマネージャはリソースの割り当てについて決定することになっています。したがって、Spark Executorsはクラスタ内の任意の(ワーカー)ノード上でランダムに起動できます。しかし、Sparkが(ワーカー)ノードにインストールされていない場合、Spark ExecutorsをYARNがどのように起動することができますか?スパークアプリケーション糸で起動ハイレベルで Spark(YARN上)がワーカーノードにインストールされていない場合、Spark Executorはどのように起動されますか?

+0

実行者は何らかの形でSparkランタイムを利用できる必要があります。これは、ノードにインストールするか、アプリケーションと共に出荷するかのいずれかで行うことができます。スパークを束ねた太った瓶に入れた。私は思う... – LiMuBei

+1

あなたはfatjar/uberjarにバイナリを含める必要はありません。それはspark-submitによって自動的に提供されます。 –

答えて

1

  1. は、アプリケーションマスター(特定スパーク)が糸コンテナのいずれかで作成されます。スパーク労働者(エグゼキュータ)

スパークドライバに使用

  • 他糸コンテナは、データを処理するエグゼキュータにシリアライズアクション(コード)を通過します。

    火花アセンブリは、独自の機能に関連する 瓶を持っています YARNクラスタとアプリケーションのスパークジョブを実行するために、スパーク関連のjarファイルを提供します。


    編集:(2017年1月4日)

    スパーク2.0 はもはや生産 展開のための脂肪組立ジャーを必要としません。 source

  • +0

    あなたの答えをありがとう。私はYARNコンテナについて知っています。私が理解している限り、エグゼキュータ(実際にはプロセス)がコンテナ内で起動されます。しかし、実行者自身がSpark固有のコンポーネントです。したがって、私の質問:スパークがどのワーカーノードにもインストールされていない場合、どのようにSpark Executorsを(YARNコンテナ内で)起動できますか? – h4wX

    +0

    はい!エグゼキュータはプロセスであり、すべてのコンピューティングロジックは、スパークドライバプログラムによってすべてのロジックに渡されます。 ** spark-assembly **のような他のジャーは、アプリケーションの起動時に自動化されたプロセスであるHDFSに移動させることで、すべてのワーカーが利用できます。 – mrsrinivas

    +0

    はい、そうですが、これは特定のケースでどのように機能しますか? – h4wX

    関連する問題