Pig スクリプトは複数の MR ジョブに変換できます。スケジュールされた、実行されたジョブの数など、PIG スクリプト全体の進行状況を確認するためのインターフェイスまたは方法があるかどうか疑問に思っています。
2 に答える
Twitter でも同じ問題がありました。Pig スクリプトの一部が数十の Map-Reduce ジョブをスピンアップし、そのうちのどれが何をしているのか、計画の効率性、いくつが並行して実行されるかを理解するのが難しい場合があります。等
そこで、Twitter Ambrose を作成しました: https://github.com/twitter/ambrose
これは、ジョブ DAG を表示し、ジョブが完了するとノードに色を付け、ジョブに関する統計情報を提供し、各ジョブが計算しようとしているリレーションを通知する、優れた Web UI を提供する小さな Jetty サーバーをスピンアップします。
説明するコマンドがありますが、デプロイメントで例外がスローされます。だから私は別のアプローチを使用します。
Explainコマンドを使用し、Explainレポートの最後にあるPhysical Planセクションを確認することで、スケジュールされているMRジョブの数に関する情報を取得できます。スクリプトのMRジョブの数を取得するには、次のようにします。
./pig -e 'explain -script ./script_name.pig' > ./explain.txt
grep MapReduce ./explain.txt | wc -l
これで、MRジョブの数が計画されました。スクリプトの実行を監視するには、スクリプトを実行する前に、Hadoopのジョブトラッカーページにアクセスし(「http://(IP_or_node_name):50030 / jobtracker.jsp」経由)、最後のジョブの名前を書き留める必要があります(「完了したジョブ」セクション)。スクリプトを送信します。ジョブトラッカーページを更新し、実行中のジョブの数と、メモしたジョブの後に完了したジョブの数を数えます。これで、実行する必要のあるジョブの数を知ることができます。各ジョブをクリックして、その統計と進行状況を確認してください。
はるかに簡単なアプローチは、小さなデータセットでスクリプトを実行し、ジョブの数を書き留めることです。スクリプトの実行後、コンソールの出力に表示されます。pigは実行プランを変更しないため、大きなデータセットでも同じになります。Hadoopのジョブトラッカーページ(「http://(IP_or_node_name):50030 / jobtracker.jsp」経由)で各ジョブの統計を調べることにより、各MRジョブにかかる時間の割合を知ることができます。これを使用して、大規模なデータセットの実行時間を概算することができます。データと一部のデカルト積を歪めている場合、実行時間の予測が難しくなる可能性があります。