私がZepplinの段落で書いたスパークジョブがspark-submitを実行するよりもずっと速く実行する理由があるのだろうか?Apache zepplinスパークジョブがspark-submitよりも速く実行する
私は基本的にZepplinとspark-submitで同じ設定(エグゼキュータ、メモリ)を使用しますが、実行時間に大きな違いがあります。
どちらも同じスタンドアロンスパーククラスタで実行されています。
この違いを説明するにはどうすればよいですか?
私がZepplinの段落で書いたスパークジョブがspark-submitを実行するよりもずっと速く実行する理由があるのだろうか?Apache zepplinスパークジョブがspark-submitよりも速く実行する
私は基本的にZepplinとspark-submitで同じ設定(エグゼキュータ、メモリ)を使用しますが、実行時間に大きな違いがあります。
どちらも同じスタンドアロンスパーククラスタで実行されています。
この違いを説明するにはどうすればよいですか?
これが原因と思われる2つのことが考えられます。
あなたのタイミングがスパークコンテキストを割り引いても(実際の仕事の時間だけをカウントするなど)、zappelinではおそらく現在の仕事の前に他の仕事をするでしょう。これらにより、さまざまなキャッシングが発生する可能性があります。いくつかの例が含まれます:あなたが前のセルにそれらを読んでいるので
Yeaをまだ試していないのであれば、ほとんどすべての可能性について考えましたが、spark-submitで実行するよりもdb(約148millionレコード)の書き込み時間が大幅に短くなった理由は説明しません。同じコードですが、Zepplinでは別の段落として書かれています。 Spark UIで各タスクがどれくらい時間がかかるかを知ることができました。 –
プロファイリングを行うときに、プロファイリング外のすべての外部要素をロードすることを確認できます。たとえば、あなたのプログラムコールspark.range(100).show()は、sparkコンテキストをロードしてから、ジョブ自体の周りにタイマーをラップします。一方、ゼップリンでは、関連するセルのみを実行し、それ以外は実行しないでください。これを考えると、同じパフォーマンスが見られるはずです。もちろん、両方のテストで同じ設定を使用しているとします。 –
職種は何ですか? –
@T.Gawęda私はそれがコードだとは思わない、それはおそらく、私のスパークのconfと異なるかもしれないzepplin spark context(sc)、sqlContextを使用しているからです –
あなたはスタートアップ/シャットダウン時間を考慮していますか? Zeppelinのインスタンスが既に起動しているので起動時間がないと思います。 Scalaの内部タイミング –