2016-05-03 10 views
0

私はSpark 1.5.2で動作するアプリケーションをチューニングしています。私は全く同じスクリプトを2回実行しましたが、driver.memoryのパラメータは異なります。SPARK:DRIVER MEMORYの数を増やすとパフォーマンスが低下する可能性がありますか?

  • 初回:driver.memory = 15グラム/実行時間:6,1h
  • セカンド時間:driver.memory = 2グラム/実行時間:5,7h

スクリプトの目標Hiveテーブルに保存する前に、新しいテーブルで同じテーブルに結合し、それを反復処理するだけです。

私が与えたメモリが多ければ多いほど、それは良いものです。しかし、このアイデアは、テストによれば一種の偽りです...実際には、ドライバのメモリはそれに責任がありますか?または+/-ランダムに実行するプロセスは...?

+2

増やすメモリが厳しくベンチマークと全体的なパフォーマンスの両方に影響を与えることができます。ドライバーのフルGCはすべてのドライバークラスタマッサージを一時停止し、結果の取得を遅らせる可能性があります。より詳細な情報が含まれていますが、これらがpySparkにどのように適用されるかはわかりません –

答えて

0

ドライバがスタンドアロンマシンで実行されているかどうかは関係ありません(エグゼキュータは実行されていません)。コレクト/テイクアクションを使用している場合は、ドライバのメモリを増やしてください。そうしないと、パフォーマンス向上のためにエグゼキュータメモリが増えます。

キャッシュを使用していない場合は、spark.shuffle.memoryFractionを増やしてみてください。

は詳細についてはスパークドキュメントを参照してください:Javaでhttps://spark.apache.org/docs/1.5.2/configuration.html

関連する問題