繁体   English   中英

Oozie Java 操作记录器日志未显示在 Oozie 控制台上

[英]Oozie java action logger logs are not shown on Oozie console

我通过在 Oozie java 操作中调用 Driver 类来执行 map-reduce 代码。 Map reduce 运行成功,我得到了预期的输出。 但是,我的驱动程序类中的日志语句未显示在 oozie 作业日志中。 我正在使用 log4j 登录我的驱动程序类。 我是否需要进行一些配置更改才能查看日志? 我的工作流.xml 的片段`

<action name="MyAppDriver">
       <java>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
             <prepare>
                <delete path="${nameNode}/home/hadoop/work/surjan/outpath/20160430" />
            </prepare>
            <main-class>com.surjan.driver.MyAppMainDriver</main-class>
            <arg>/home/hadoop/work/surjan/PoC/wf-app-dir/MyApp.xml</arg>
            <job-xml>/home/hadoop/work/surjan/PoC/wf-app-dir/AppSegmenter.xml</job-xml>
        </java>
        <ok to="sendEmailSuccess"/>
        <error to="sendEmailKill"/>
    </action>

`

进入 Yarn 的日志。

就我而言,我有一个自定义的 java 操作。 如果您查看 Yarn UI,您必须深入了解 java 操作所在的映射器任务。所以在我的情况下, 0070083-200420161025476-oozie-xxx-W wf 项目是0070083-200420161025476-oozie-xxx-W并且oozie job -log ${wf_id}显示java 操作0070083-200420161025476-oozie-xxx-W@java1因 Java 异常而失败。 我看不到任何上下文。 查看 oozie Web UI,只有“作业错误日志”根据命令行上显示的内容填充。 未显示实际日志记录。 ooize job -info ${wf_id}状态显示失败:

Actions
------------------------------------------------------------------------------------------------------------------------------------
ID                                                                            Status    Ext ID                 Ext Status Err Code
------------------------------------------------------------------------------------------------------------------------------------
0070083-200420161025476-oozie-xxx-W@:start:                                  OK        -                      OK         -
------------------------------------------------------------------------------------------------------------------------------------
0070083-200420161025476-oozie-xxx-W@java1                                    ERROR     job_1587370152078_1090 FAILED/KILLEDJA018
------------------------------------------------------------------------------------------------------------------------------------
0070083-200420161025476-oozie-xxx-W@fail                                     OK        -                      OK         E0729
------------------------------------------------------------------------------------------------------------------------------------

您可以在 Web 控制台 Yarn Resource Manager UI上搜索实际纱线(不在“纱线日志”Web 控制台中,这是纱线自己的日志,而不是它所托管的日志)。 通过查找 ooize wf 作业 ID,您可以轻松地在命令行上 grep 正确的 ID:

user@host:~/apidemo$ yarn application --list -appStates FINISHED | grep 0070083-200420161025476
20/04/22 20:42:12 INFO client.AHSProxy: Connecting to Application History server at your.host.com/130.178.58.221:10200
20/04/22 20:42:12 INFO client.RequestHedgingRMFailoverProxyProvider: Looking for the active RM in [rm1, rm2]...
20/04/22 20:42:12 INFO client.RequestHedgingRMFailoverProxyProvider: Found active RM [rm2]
application_1587370152078_1090  oozie:launcher:T=java:W=java-whatever-sql-task-wf:A=java1:ID=0070083-200420161025476-oozie-xxx-W             MAPREDUCE    kerberos-id           default                FINISHED               SUCCEEDED                 100% https://your.host.com:8090/jobhistory/job/job_1587370152078_1090
user@host:~/apidemo$

请注意,oozie 说事情失败了。 然而动作的状态是“完成”,纱线应用状态是“成功”,这看起来很奇怪。

有用的是,命令行输出还显示了作业历史记录的 URL。 这将打开网页,将您带到运行您的 java 的父应用程序。 如果您单击页面中的小日志链接,您会看到一些日志。 如果您仔细观察,该页面说它运行了“任务类型映射”的 1 个操作。 如果您单击该行中的链接,它会将您带到实际任务,在我的情况下是task_1587370152078_1090_m_000000 你必须点击它才能看到第一次尝试尝试attempt_1587370152078_1090_m_000000_0然后在右侧你有一个小日志链接,它显示了一些更具体的日志记录。

一旦您知道应用程序 ID,您还可以向 yarn 询问日志:

yarn logs -applicationId application_1587370152078_1090

这向我展示了非常详细的日志,包括我在控制台上不容易看到的自定义 Java 日志记录,在那里我可以看到真正发生的事情。

请注意,如果您正在编写自定义代码,您希望让纱线设置 log4j 属性文件而不是提供您自己的版本,以便纱线工具可以找到您的日志。 代码将使用一个标志运行:

    -Dlog4j.configuration=container-log4j.properties 

详细日志显示添加到类路径的所有 jar。 您应该确保您的自定义代码使用相同的 jars 和 log4j 版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM