在 Oozie 4.2 中禁用工作流错误日志

Posted

技术标签:

【中文标题】在 Oozie 4.2 中禁用工作流错误日志【英文标题】:Workflow error logs disabled in Oozie 4.2 【发布时间】:2015-09-04 12:09:53 【问题描述】:

我正在使用与 HDP 2.3 捆绑在一起的 Oozie 4.2。

在使用 oozie 软件包附带的一些示例工作流时,我注意到“作业错误日志已禁用”,这使得在发生故障时调试非常困难。我尝试运行以下命令,

# oozie job -config /home/santhosh/examples/apps/hive/job.properties -run
job: 0000063-150904123805993-oozie-oozi-W

# oozie job -errorlog 0000063-150904123805993-oozie-oozi-W

错误日志被禁用!!

谁能告诉我如何为 oozie 启用工作流错误日志?

【问题讨论】:

-errorlog 是 V4.2 的新内容,未记录,并且可能由于多种原因在 HDP 发行版中被停用。包括与其他 Hadoop 组件的兼容性问题。因此,您可能必须重新编译该东西才能激活它,风险自负。顺便说一句,-log 输出中尚未显示的内容应该显示什么? 感谢您的意见!我面临的问题是当工作流失败时(我尝试执行包附带的示例工作流)它没有给我任何关于错误是什么的信息,我在日志中找不到任何内容来了解​​根本原因的失败。任何有关如何解决此问题的线索都会有很大帮助! Oozie 日志显示协调的详细信息;实际 执行 的详细信息在 YARN 日志中。在 Oozie 日志中搜索“External ID”,然后在 YARN Web 控制台中找到匹配的条目。 谢谢萨姆森!将检查并恢复。 嗨,Santosh,您找到启用错误日志的方法了吗? 【参考方案1】:

在 Oozie UI 中,“作业错误日志”是在 Oozie v4.2 上的 HDP v2.3 中引入的选项卡。 这是从 oozie 日志文件中查找指定 oozie 作业错误的最简单方法。

要启用 oozie 的作业错误日志,请在 oozie log4j 属性文件中进行以下更改:

    在 log4j.appender.oozie 之后和 log4j.appender.oozieops 之前添加以下行:
log4j.appender.oozieError=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.oozieError.RollingPolicy=org.apache.oozie.util.OozieRollingPolicy
log4j.appender.oozieError.File=$oozie.log.dir/oozie-error.log
log4j.appender.oozieError.Append=true
log4j.appender.oozieError.layout=org.apache.log4j.PatternLayout
log4j.appender.oozieError.layout.ConversionPattern=%dISO8601 %5p %c1:%L - SERVER[$oozie.instance.id] %m%n
log4j.appender.oozieError.RollingPolicy.FileNamePattern=$log4j.appender.oozieError.File-%dyyyy-MM-dd-HH
log4j.appender.oozieError.RollingPolicy.MaxHistory=720
log4j.appender.oozieError.filter.1 = org.apache.log4j.varia.LevelMatchFilter
log4j.appender.oozieError.filter.1.levelToMatch = WARN
log4j.appender.oozieError.filter.2 = org.apache.log4j.varia.LevelMatchFilter
log4j.appender.oozieError.filter.2.levelToMatch = ERROR
log4j.appender.oozieError.filter.3 =`enter code here` org.apache.log4j.varia.LevelMatchFilter
log4j.appender.oozieError.filter.3.levelToMatch = FATAL
log4j.appender.oozieError.filter.4 = org.apache.log4j.varia.DenyAllFilter 

    将以下内容从 log4j.logger.org.apache.oozie=WARN, oozie 修改为 log4j.logger.org.apache.oozie=ALL, oozie, oozieError

    重启 oozie 服务。这将有助于获取重新启动 oozie 服务后启动的新作业的作业错误日志。

【讨论】:

@Saurabh 我已经使用了你提供的代码,但是在添加了这些代码之后,我的 Bundle 工作陷入了等待状态,我做错了什么 我只在我的 oozie 文件 log4j.logger.org.apache.oozie=WARN 的同一位置添加了代码,因为 log4j.logger.org.apache.oozie=INFO, oozie, ETW , FullPIILogs 已给出,我已将其更改为 log4j.logger.org.apache.oozie=INFO, ALL, oozie, oozieError, ETW, FullPIILogs 所以如果我在这里做错了请告诉我【参考方案2】:

如前所述,错误日志是新的,可能有充分的理由不可用。但是,您似乎对 oozie 错误日志有错误的期望。

错误日志是日志文件的子集。不是补充。

所以是的,它可以让调试变得更容易,但是如果您检查了 oozie 日志并没有找到您要查找的内容,那么错误日志将不是您的解决方案。

您可能想要查看底层任务的日志,可以通过外部 ID 找到。

【讨论】:

我的日志只是说主类 [org.apache.oozie.action.hadoop.HiveMain],退出代码 [1] 我也检查了 MapReduce 作业日志,它说作业已成功,没有任何错误,所以你能帮我看看我在这里缺少什么。 @anand 如果您需要帮助并查看了本网站上的可用信息,一般来说,请考虑提出一个新问题。评论不是请求的地方。 -- 有陈述显而易见的风险:确保在提出问题时包含所有相关信息,否则人们很难为您提供帮助。

以上是关于在 Oozie 4.2 中禁用工作流错误日志的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Hue 中运行工作流时出现 Oozie 错误

我们可以在 oozie 工作流 xml 中访问整个 hadoop 作业日志吗?

无法在oozie中运行shell(错误= 2,没有这样的文件或目录)

在 Oozie 日志中获取 E0800

错误:未找到 org.apache.oozie.action.hadoop.PigMain

Oozie 协调器调度使用 cron 表达式给出错误