Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 当清管器作业成功时,如何保存清管器作业日志文件。_Hadoop_Apache Pig - Fatal编程技术网

Hadoop 当清管器作业成功时,如何保存清管器作业日志文件。

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脚本时出现错误时,会生成并保存一个日志。但如果没有错误,日志文件将被删除。即使作业成功,是否有办法保留日志文件

默认情况下,错误(例如:脚本解析错误)记录到
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解释器,还是影响运行该作业的任务。