如何保存Pig作业日志文件时,它是成功的

tct7dpnv  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(340)

我注意到,当运行pig脚本时出现错误时,会生成并保存一个日志。但是如果没有错误,日志文件就会被删除。有没有办法即使作业成功也能保存日志文件?

xa9qqrwz

xa9qqrwz1#

准备好log4j.properties文件后,打开pig.properties文件并取消注解以下内容:
log4jconf=$pig\u home/conf/log4j.properties

xfyts7mz

xfyts7mz2#

撞旧线
简单的方法是重定向输出

pig -f pig-file 2> xyz.log  -- this will give just the logs
pig -f pigfile &> xyz.log -- logs + stdout(dumps)
g6ll5ycj

g6ll5ycj3#

默认情况下,将错误(例如:脚本解析错误)记录到 pig.logfile 可以在 $PIG_HOME/conf/pig.properties . 如果您也想记录状态消息,请准备一个有效的 log4j.properties 文件并将其设置在 log4jconf 财产。
e、 g:在$pig\u 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

当使用pigv0.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';

相关问题