【问题标题】:OOZIE REST API RERUN - START Job functions don't workOOZIE REST API RERUN - START 作业功能不起作用
【发布时间】:2016-12-22 13:50:05
【问题描述】:

OOZIE REST API RERUN - START 作业功能不起作用

嗨, 我想启动 Oozie 的作业抛出 REST API(CDH 5.3.1 中的 Oozie 版本 4.0.0),但作业无法启动或重新运行。

我使用 Google 的 ADVANCED REST API 启动:

PUT {namenode}:11000/oozie/v1/job/0000001-150528075707705-oozie-oozi-W?action=start

结果是:

200 OK

响应不包含任何数据。


但工作流的工作没有开始。


然后我尝试启动

PUT  {namenode}:11000/oozie/v1/job/0000001-150528075707705-oozie-oozi-W?action=rerun

结果是:

500 Internal Server Error

Apache Tomcat/6.0.41 - 错误报告

HTTP 状态 500 - org.xml.sax.SAXParseException;文件过早结束。

类型异常报告

消息 org.xml.sax.SAXParseException;文件过早结束。

描述服务器遇到了一个内部错误,导致它无法完成这个请求。

异常

java.io.IOException: org.xml.sax.SAXParseException;文件过早结束。
    org.apache.oozie.util.XConfiguration.parse(XConfiguration.java:253)
    org.apache.oozie.util.XConfiguration.(XConfiguration.java:63)
    org.apache.oozie.servlet.BaseJobServlet.doPut(BaseJobServlet.java:114)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:730)
    org.apache.oozie.servlet.JsonRestServlet.service(JsonRestServlet.java:287)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:154)
    org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:592)
    org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:555)
    org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:159)
    org.apache.oozie.servlet.HostnameFilter.doFilter(HostnameFilter.java:84)

根本原因

org.xml.sax.SAXParseException;文件过早结束。
    org.apache.xerces.parsers.DOMParser.parse(未知来源)
    org.apache.xerces.jaxp.DocumentBuilderImpl.parse(未知来源)
    javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
    org.apache.oozie.util.XConfiguration.parse(XConfiguration.java:248)
    org.apache.oozie.util.XConfiguration.(XConfiguration.java:63)
    org.apache.oozie.servlet.BaseJobServlet.doPut(BaseJobServlet.java:114)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:730)
    org.apache.oozie.servlet.JsonRestServlet.service(JsonRestServlet.java:287)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:154)
    org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:592)
    org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:555)
    org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:159)
    org.apache.oozie.servlet.HostnameFilter.doFilter(HostnameFilter.java:84)

注意 Apache Tomcat/6.0.41 日志中提供了根本原因的完整堆栈跟踪。

Apache Tomcat/6.0.41

Code Mirror 代码高亮显示

作业在 HDFS 上,其余命令:

GET {namenode}:11000/oozie/v1/job/0000001-150528075707705-oozie-oozi-W?show=info

工作正常。答案是:

200 OK

{
appPath: "hdfs://{namenode}/user/hue/oozie/workspaces/_yarn_-oozie-57-1432735905.63"
acl: null
status: "SUCCEEDED"
createdTime: "Thu, 28 May 2015 15:34:37 GMT"
conf ......

使用 API Rest 在 Oozie 中重新运行或启动与工作流相关联的作业的最简单方法是什么? 根据官方文档中的建议,这项工作不起作用:

http://archive-primary.cloudera.com/cdh5/cdh/5/oozie-4.0.0-cdh5.3.1/WebServicesAPI.html#Re-Runing_a_Workflow_Job

提前致谢。

塞巴斯蒂亚诺。

【问题讨论】:

    标签: rest oozie


    【解决方案1】:

    PUT 似乎适合重新运行。但是,它还需要为两个属性之一提供 XML

    <?xml version="1.0" encoding="UTF-8"?><configuration><property> <name>oozie.wf.rerun.failnodes</name> <value>false</value> </property></configuration>
    

    <?xml version="1.0" encoding="UTF-8"?><configuration><property> <name>oozie.wf.rerun.skip.nodes</name> <value>,</value> </property></configuration>
    

    那些决定哪些节点被重新运行或跳过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2020-06-05
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多