2016-12-08 5 views
0

DATASET APIを使用してスパークジョブを作成しました。最終結果がHDFSで収集されるまで、一連の操作が実行されます。中間データセットの処理済メトリックを記録します

しかし、中間データセットごとに読み取られたレコードの数も知る必要があります。 5つの操作をデータセット(マップ、グループなど)に適用すると、5つの中間データセットごとにいくつのレコードがあるかを知る必要があります。データセットレベルでこれがどのように得られるのか誰にでも示唆することができます。私はタスクレベル(リスナーを使用して)でこれを見つけることができますが、データセットレベルで取得する方法はわかりません。

おかげ

答えて

0

メトリクスに関連するスパークのドキュメントから最も近いがAccumulatorsです。しかし、これは行動にとって有効であり、acucmulatorsは変容のために更新されないと述べました。

各操作の後もカウントを使用して最新のカウントを取得できます。しかし、他のような追加ステップが必要であり、すべてのメトリックでより少ないメトリックで、またはより低速で、処理を高速に実行する必要があるかどうかを確認する必要があることに注意してください。

SparkListenerは、アプリケーション、ジョブ、ステージ、タスクが開始され、完了すると同時に、ドライバの追加や削除などのインフラストラクチャ中心のイベントが発生したときにイベントを受け取ることができます。または環境プロパティが変更されたときに発生する可能性があります。 Sparkアプリケーションとインフラストラクチャ全体の健全性に関するすべての情報はWebUIにあります。

あなたの要件はカスタム実装のほうが多くあります。あなたがこれを達成できるかどうかは分かりません。統計情報のエクスポートに関する情報はhereです。

収集できるすべてのメトリックは、ジョブ開始、ジョブ終了、タスク開始、およびタスク終了です。あなたがドキュメントにhere

希望を確認することができます上記の情報は、より良い解決策を見つけるためにあなたを導く可能性がある

関連する問題