在oozie中执行时,为什么我的应用程序级别日志消失了?

我在CDH5环境中使用oozie。我也在使用oozie网络控制台。我无法从应用程序中看到任何日志。我可以看到hadoop日志,spark日志等;但我看不到任何特定于应用程序的日志。

在我的应用程序中,我包含了src / main / resources / log4j.properties

# Root logger option

log4j.rootLogger=INFO, stdout

# Direct log messages to stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

在我的oozie工作流程中,我有Java动作和Spark动作。

同样重要的是要注意,当我从命令行运行应用程序时,我确实看到了应用程序级别的日志。

回答:

Oozie在不同的“启动程序”工作中运行每个Action-实际上是具有单个映射器的YARN工作 (请参见下面的例外)

只要您在表单中看到“外部ID”,job_000000000_0000就可以访问YARN日志application_000000_0000

(是的,“ job”是Hadoop 1中的旧命名约定,仍由JobHistory服务使用,但是YARN还有另一种命名约定)。

您的应用程序输出实际上已

  • 您的StdErr原样转储,可以在“ stderr”部分中检索
  • 您的StdOut会在冗长的“ stdout”部分的结尾处转储,并在每行上带有前缀 (Oozie使用该前缀来管理<capture_output/>Shell和Pig操作的技巧)
  • 没有任何东西进入“系统日志”部分AFAIK

底线:

  1. 运行oozie job -info ******以获取操作列表以及用于Oozie工作流程执行的相应“外部ID”
  2. 对于每个job_*****_**旧版ID,请运行yarn logs -applicationId application_*****_** | more以浏览全局YARN日志,然后放大您的特定应用日志
  3. 现在您可以尝试自动执行该操作…玩得开心


“启动器” Oozie工作原理的例外

-电子邮件操作/文件系统操作只是直接从Oozie服务器进程执行的API调用;然后MapReduce动作会生成带有多个Mappers和Reducers的常规YARN作业。

以上是 在oozie中执行时,为什么我的应用程序级别日志消失了? 的全部内容, 来源链接: utcz.com/qa/401837.html

回到顶部