2017-10-19 2 views
0

私はスパークアプリケーションを持っています。いくつかのテーブルに何度も参加し、その結果をHDFSに書き出します。ステージ内のすべてのタスクは同じエグゼキュータで実行されます

提出する私のスクリプト:

spark-submit \ 
--master yarn \ 
--deploy-mode cluster \ 
--driver-memory 14G \ 
--driver-cores 6 \ 
--executor-memory 14G \ 
--executor-cores 4 \ 
--num-executors 50 \ 
--conf spark.sql.autoBroadcastJoinThreshold=31457280 \ 
--conf spark.sql.shuffle.partitions=200 \ 
--class my.main.class\ 
my.jar 

問題:スパークのWebUIで 、私が好き個々の段階は同じexectorで実行されている:段階で200のタスクが同じエグゼキュータのPCで実行するのはなぜ all executor -xxxx269? enter image description here

+0

あなたはどのソースから読んでいますか? –

+0

hdfsから読み取るすべてのテーブル – fifth

+0

あなたはHDFSクラスタの上にSparkを実行していますか? –

答えて

0

おそらく2通りの方法で発生する可能性があります。 1。適切なパーティションが適用されていません 2。パーティション化されたHashを使用している場合は、すべてのキーのハッシュ値が十分に近いです。

+0

ありがとう@Guda私はHashを使っています。キーのハッシュ値が十分に近い場合、それはskew.justのようにする必要があります:task1 extcute 1G dataとtask2-200は何も実行しません。 – fifth

関連する問題