2017-02-02 4 views
1

Spark 1.6.1とScala 2.10を使用してScalaで書かれたGraphXを使用してデータセットを結合およびリンクするコードを作成しました。Spark GraphX spark-shellとspark-submitパフォーマンスの差異

このコードをspark-shellで実行すると、30分で10人のエグゼキュータ、10gのメモリで完了します&実行者あたり5 cpu。

私たちがspark-submitを使ってfat jarで実行すると、プロセスはメモリ不足のエラーで失敗し、そのポイントに到達するのに1時間半かかります。

これを引き起こしている可能性のあるアイデアは誰にもありますか?

SparkContextとSQLContextがシェル内でどのように設定されているか知っていますか?spark-submitで問題が発生している可能性がある独自のコンテキストを設定していない場合は、

答えて

0

ある場合

オープンスパークのWeb UIは、チェック私は再び私の質問にぶつかっしばらく前に、ちょうどこれを考え出しました。だから私はそれをどのように修正したのだろうと思った。この問題は、スパーク・サブミットとスパーク・シェルの違いではなく、実行していたコード構造の違いです。

シェルでは、コードをアンバンドルして行ごとに実行していました。その結果、Sparkによって生成されたコードは高速で効率的でした。

Spark Submitでは、コードをパッケージ化して継承してコードを共有して再利用しやすくしましたが、スパークコードが乱雑で非効率的になりました。継承の大部分を削除し、より単純なより機能的なコードを書いたとき、パフォーマンスは速く効率的に戻りました。

ここでの教訓は、アプリケーションをあまり使いすぎていないことを確認することです。ほとんどの継承は問題ありませんが、コードを簡単で機能的に維持して、Sparkが効率的にクラスタ上で実行するコード。

0

違いはありません。

​​の設定をチェックしてください - おそらくそれらのいくつかは間違っており、​​のエグゼキュータまたはメモリの数は少なくなります。データが偏っていない場合、すべての設定が正しい

+0

設定が同一であることを確認しました。スパーク送信にシェルよりも多くのリソースを提供しても、それでも問題が発生します。また、データが歪んでいる場合は、シェルに影響し、同じ方法で送信する必要がありますか? –

+0

@AndyLong Spark Web UIでパラメータの値を確認できますか? –

+0

一部の設定がオーバーライドされている可能性があります。そのため、Web UIから情報を確認したい –

関連する問題