【问题标题】:Pig Batch mode: how to set logging level to hide INFO log messages?Pig Batch 模式:如何设置日志记录级别以隐藏 INFO 日志消息?
【发布时间】:2013-05-13 17:25:23
【问题描述】:

使用 Apache Pig 版本 0.10.1.21(重新导出)。当我执行一个猪脚本时,有很多 INFO 日志记录行看起来像这样:

2013-05-18 14:30:12,810 [Thread-28] INFO  org.apache.hadoop.mapred.Task - Task 'attempt_local_0005_r_000000_0' done.
2013-05-18 14:30:18,064 [main] WARN  org.apache.pig.tools.pigstats.PigStatsUtil - Failed to get RunningJob for job job_local_0005
2013-05-18 14:30:18,094 [Thread-31] WARN  org.apache.hadoop.mapred.JobClient - No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
2013-05-18 14:30:18,114 [Thread-31] INFO  org.apache.hadoop.mapreduce.lib.input.FileInputFormat - Total input paths to process : 1
2013-05-18 14:30:18,254 [Thread-32] INFO  org.apache.hadoop.mapred.Task -  Using ResourceCalculatorPlugin : org.apache.hadoop.util.LinuxResourceCalculatorPlugin@3fcb2dd1
2013-05-18 14:30:18,265 [Thread-32] INFO  org.apache.hadoop.mapred.MapTask - io.sort.mb = 10

pig 脚本中是否有 SET 命令或命令行标志来允许日志级别?基本上我想隐藏 [Thread-xx] INFO 消息。只显示警告和错误。我已经尝试过命令行调试标志。不幸的是,INFO 消息仍然显示:

pig -x local -d WARN MyScript.pig

希望有解决办法。提前感谢您的帮助。

已解决:回答by Loran Bendig, set the log4j.properties。为方便起见,这里总结一下

Step1:将log4j配置文件复制到我的猪脚本所在的文件夹中。

cp /etc/pig/conf.dist/log4j.properties log4j_WARN

Step2:编辑 log4j_WARN 文件并确保这两行存在

log4j.logger.org.apache.pig=WARN, A
log4j.logger.org.apache.hadoop = WARN, A

Step3:运行 pig 脚本并指示它使用自定义 log4j

pig -x local -4 log4j_WARN MyScript.pig

【问题讨论】:

标签: apache-pig


【解决方案1】:

另一个设置也可以是这样的:

创建一个名为 nolog.conf 的文件,内容如下

log4j.rootLogger=fatal

然后运行 ​​pig 如下

pig -x local -4 nolog.conf

【讨论】:

    【解决方案2】:

    您可以像这样覆盖默认日志配置(包括 INFO 消息):

    pig -4 log4j.properties MyScript.pig
    

    【讨论】:

    • 不工作。我将原始 log4j.properties 复制到与猪脚本相同的文件夹中。然后通过 pig -x local -4 myLog4J Myscript.pig 执行脚本。有相同数量的 INFO 行。日志行中仅删除了 [Thread-XX]。这发生在 log4j.logger.org.apache.pig=WARN, A 或 log4j.logger.org.apache.pig=ERROR, A
    • @Lorand Bendig 的回答更加简洁——您需要进行更多配置才能使其正常工作——查看上面的链接。
    • 我确实阅读了 Lorand 的帖子,但没有注意到语法上的相似之处(.hadoop 与 .pig)。实际上必须添加“log4j.logger.org.apache.hadoop = error, A”行。为了清楚起见,我将编辑原始帖子以包含答案。谢谢。
    【解决方案3】:

    你也需要设置rootLogger:

    log4j.rootLogger=ERROR, A
    log4j.logger.org.apache.pig=ERROR, A
    log4j.logger.org.apache.hadoop = ERROR, A
    

    【讨论】:

    • , A 是做什么的?
    猜你喜欢
    • 2016-02-20
    • 2023-03-23
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2015-06-23
    相关资源
    最近更新 更多