2016-05-26 7 views
6

最近、私はいくつかの大きなシャッフル重い仕事のパフォーマンスを調整してきました。スパークのUIを見て、私は追加のメトリックのセクションの下に "Shuffle Read Blocked Time"というオプションがあることに気付きました。スパーク - シャッフル読み取りブロック時間

この「シャッフル読み取りブロック時間」は、大規模な作業の場合、タスクの持続時間の50%以上を占めるようです。

私はこれが意味するものについていくつかの可能性を指摘することができますが、実際に何が表現されているかを説明するドキュメントは見つかりません。言うまでもありませんが、私はまた、緩和戦略に関するリソースを見つけることができませんでした。

Shuffle Read Blocked Timeをどのように減らすことができるか、誰にでも分かりますか?

答えて

1

「シャッフル読み取りブロック時間」は、シャッフルデータがリモートマシンから読み取られるのを待っている間にタスクがブロックされた時間です。そこからフィードされる正確なメトリックはshuffleReadMetrics.fetchWaitTimeです。

読んでいるデータや読んでいるリモートマシンの種類を実際に知らなくても、それを緩和する戦略を入力するのは難しいです。ただし、次の点を考慮してください。

  1. データを読み取っているリモートマシンとの接続を確認します。
  2. コード/ジョブをチェックして、仕事を終了するために必ず読んでおく必要のあるデータのみを確実に読み取っていることを確認します。
  3. 場合によっては、ジョブが互いに独立している限り、並列に実行される複数のジョブに分割することを検討することもできます。
  4. おそらく、より多くのノードを持つようにクラスタをアップグレードして、作業負荷をより細かく分けることができ、全体的に待ち時間が短くなる可能性があります。あなたのような引用符に入れた場合、私はまた、それが難しいシャッフル読むの情報がタイムをブロックされた見つけるために見つけた、最後https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-webui-StagePage.html

    を、しかし:

は、メトリックにしたように、このドキュメントはそれらにいくつかの光を当てる必要があります。 google検索で「シャッフル読み込みブロック時間」を選択すると、まともな結果が得られます。

関連する問題