2

私は豚の初心者です。

私は豚で小さなスクリプトを書きました。最初に2つの異なるテーブルからデータをロードし、さらに2つのテーブルを右外部結合し、後で2つの異なるデータのテーブルの次の結合も行います.それは正常に動作します.しかし、私はどのステップでデータがロードされるかなど、実行のステップを確認したいデータ結合のステップの詳細を後でロードするのに必要な時間を記録できます。これらの多くのレコードを結合するのにかかる時間などです。

基本的に、豚のスクリプトのどの部分が実行に時間がかかっているかを知りたいので、豚のスクリプトをさらに最適化できます。

とにかく、スクリプト内で println を実行し、どのステップが実行され、どのステップが実行を開始したかを見つけることができます。

ジョブトラッカーの詳細リンクから多くの情報を取得できませんでした。マッパーが実行されていることとリデューサーが実行されていることを確認できましたが、理想的には、スクリプトの一部が実行されているマッパーはそれを見つけることができませんでした。

たとえば、Hive ジョブの実行では、ジョブトラッカーの詳細リンクで、現在どのステップが実行されているかを確認できます。

どんな情報も本当に役に立ちます。

前もって感謝します 。

4

2 に答える 2

1

以下をご覧になることをお勧めします。

一方、スクリプトを実行した後、各エイリアスの実行時間に関する詳細な統計を確認できます (ジョブの統計 (秒単位の時間) を参照)。

于 2013-03-15T11:16:40.323 に答える
1

EXPLAINオペレーターを見てください。これにより、コードの実行中にリアルタイムの統計情報が得られるわけではありませんが、スクリプトが生成する MapReduce プランに関する十分な情報が得られ、MR ジョブをスクリプト内のステップと一致させることができます。

また、スクリプトの実行中に、Hadoop ジョブの構成を調べることができます。変数「pig.alias」と「pig.job.feature」を見てください。これらはそれぞれ、どのエイリアス (テーブル/リレーション) がそのジョブに関係しているか、どの Pig 操作が使用されているか (たとえば、ステップの HASH_JOIN、JOINステップの SAMPLER または ORDER BYORDER BYなど) を示します。この情報は、完了時にコンソールに出力されるジョブ統計でも利用できます。

于 2013-03-15T13:47:11.453 に答える