PIG スクリプトの実行中にエラーが発生すると、ログが生成されて保持されることに気付きました。ただし、エラーがない場合、ログ ファイルは削除されます。ジョブが成功した場合でもログ ファイルを保持する方法はありますか?
質問する
7323 次
3 に答える
3
デフォルトでは、エラー (例: スクリプト解析エラー) がログに記録されpig.logfile
、 で設定できます$PIG_HOME/conf/pig.properties
。ステータスメッセージも記録したい場合は、有効なlog4j.properties
ファイルを用意してlog4jconf
プロパティに設定してください。
例: $PIG_HOME/conf で log4j.properties.template の名前を log4j.properties に変更し、次のように設定します。
log4j.logger.org.apache.pig=info, B
# ***** A is set to be a ConsoleAppender.
#log4j.appender.A=org.apache.log4j.ConsoleAppender
# ***** A uses PatternLayout.
#log4j.appender.A.layout=org.apache.log4j.PatternLayout
#log4j.appender.A.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# ***** B is set to be a FileAppender.
log4j.appender.B=org.apache.log4j.FileAppender
#log4j.appender.B.File=/home/user/pig-distrib/logs/pig_success.log
log4j.appender.B.File=/home/user/pig-distrib/logs/pig.log
log4j.appender.B.layout=org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
log4j.appender.B.Append=true
Pig v0.10.0 (r1328203) を使用しているときに、Pig タスクが成功してもジョブの履歴ログが hdfs の出力ディレクトリに書き込まれないことがわかりました。
( hadoop.job.history.user.location=${mapred.output.dir}/_logs/history/
)
どうしてもこれらの履歴が必要な場合は、次のように pig スクリプトで mapred.output.dir を設定します。
set mapred.output.dir '/user/hadoop/test/output';
于 2012-08-22T15:29:32.410 に答える