2017-02-09 7 views
0

は、私のラップトップは、8つのコアを持っており、私が提出した場合:コアが利用可能になったときに 利用可能なコアの数よりも多くのパーティションを指定した場合、何が起こるのですか?例えば

sc.parallelize(1 to 100, 30).count

は、それが1で最初に、他の22個のタスクが1を実行している8つのタスクを実行していますか?

SparkUIやログ経由で何が起こったのかを確認する方法はありますか?

答えて

1

コアが使用可能になると、最初に8つのタスクが実行され、次に他の22個のタスクが1つずつ実行されますか?

はい。 Spark UIには、それを観察するためのイベントタイムラインビューがあります[1]。 Sparkログでタスクが開始された時期を確認することもできます。

[1] https://databricks.com/blog/2015/06/22/understanding-your-spark-application-through-visualization.html

+0

をリンクは非常に便利でした!問題のフォローアップ:タスクの数がコアの数よりも高くならない場合、コアの数より多くのパーティションを割り当てる理由/利点はありません。 – Glide

+0

不良パーティション、データスキュー、ストラグラー(低速ノード)など、データに完全に依存します。あなたのパーティションが大きく、スケジューリング作業のオーバーヘッドがかなり低い場合は、コアの数よりも多くのパーティションを使用することを検討します。 – zsxwing

+0

申し訳ありませんが、(私の限られた知識のため)あなたの最後の反応を理解できませんでした。私はこれについて別の質問を作成しました。そこに答えていただけますか? http://stackoverflow.com/questions/42284477/does-it-ever-make-sense-to-run-more-partitions-than-number-of-cores – Glide

関連する問題