メインコンテンツまでスキップ

Spark ステージの高 I/O

次に、最も長いステージの I/O 統計をもう一度見てみましょう。

ロングステージI/O

高I/Oとは?

I/O 列にどれだけのデータが含まれていると高いと見なされるか。 これを理解するには、まず、指定された列のいずれかで最も高い番号から始めます。 次に、すべてのワーカーで持っている CPU コアの合計数を考えてみましょう。 通常、各コアは毎秒約3MBの読み取りと書き込みが可能です。

最大の I/O 列をクラスターワーカー コアの数で除算し、それを duration 秒数で除算します。 結果が約 3 MB の場合は、I/O バウンドである可能性があります。これは I/O が高くなります。

高入力

ステージに多くの入力が表示される場合は、データの読み取りに多くの時間を費やしていることを意味します。まず、このステージが読み取っているデータを特定します。Spark の DAG で高コストな読み取りを特定するを参照してください

特定のデータを特定したら、読み取りを高速化するためのいくつかのアプローチを次に示します。

高出力

ステージからの出力が多い場合は、データの書き込みに多くの時間を費やしていることを意味します。これを解決するためのいくつかのアプローチを次に示します。

ハイシャッフル

シャッフルに詳しくない方は、この機会に ぜひ学びましょう。

高I/Oなし

どの列にも高い I/O が見つからない場合は、さらに詳しく調べる必要があります。I/O が少ない Slow Spark ステージを参照してください。