Hadoop 当清管器作业成功时,如何保存清管器作业日志文件。
我注意到,当运行PIG脚本时出现错误时,会生成并保存一个日志。但如果没有错误,日志文件将被删除。即使作业成功,是否有办法保留日志文件 默认情况下,错误(例如:脚本解析错误)记录到Hadoop 当清管器作业成功时,如何保存清管器作业日志文件。,hadoop,apache-pig,Hadoop,Apache Pig,我注意到,当运行PIG脚本时出现错误时,会生成并保存一个日志。但如果没有错误,日志文件将被删除。即使作业成功,是否有办法保留日志文件 默认情况下,错误(例如:脚本解析错误)记录到pig.logfile,可在$pig\u HOME/conf/pig.properties中设置。如果还想记录状态消息,则准备一个有效的log4j.properties文件,并在log4jconf属性中进行设置 例如:在$PIG_HOME/conf中将log4j.properties.template重命名为log4j.
pig.logfile
,可在$pig\u 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}/\u logs/history/
)
如果您想通过各种方式获得这些历史记录,请在pig脚本中按以下方式设置mapred.output.dir:
set mapred.output.dir '/user/hadoop/test/output';
准备好log4j.properties文件后,打开pig.properties文件并取消注释以下内容: log4jconf=$PIG_HOME/conf/log4j.properties碰撞旧线程 简单的方法是重定向输出
pig -f pig-file 2> xyz.log -- this will give just the logs
pig -f pigfile &> xyz.log -- logs + stdout(dumps)
我一直不清楚这些更改是影响生成Hadoop作业的本地pig解释器,还是影响运行该作业的任务。