本文章为原创文章,转载请注明出处:http://guoyunsky.iteye.com/blog/1698507
今天通过Oozie启动一个定时工作流的时候,控制台发现如下报错:
Error: E0301 : E0301: Invalid resource [hdfs://localhost:9000/user/guoyun/workflow/apps/workflow],其中hdfs://localhost:9000/user/guoyun/workflow/apps/workflow为我要定时启动的工作流在hdfs上的地址.之前使用oozie定时一直很正常,怎么会发生这种报错,很奇怪。google搜索下,没看到什么解决方案。于是跑去oozie的日志中,默认是$OOZIE_HOME/logs目录下的oozie.log发现如下完整异常:
org.apache.oozie.servlet.XServletException: E0301: Invalid resource [hdfs://localhost:9000/user/guoyun/workflow/apps/workflow]
at org.apache.oozie.servlet.ServletUtilities.ValidateAppPath(ServletUtilities.java:27)
at org.apache.oozie.servlet.BaseJobServlet.checkAuthorizationForApp(BaseJobServlet.java:168)
at org.apache.oozie.servlet.BaseJobsServlet.doPost(BaseJobsServlet.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at org.apache.oozie.servlet.JsonRestServlet.service(JsonRestServlet.java:281)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:123)
at com.cloudera.alfredo.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:371)
at org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:128)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
通过这些异常可以发现是在工作流验证的时候所导致,但还是不能直观的告诉我到底是什么原因.无奈,直的看下源码了.于是跑到org.apache.oozie.servlet.ServletUtilities.ValidateAppPath(ServletUtilities.java:27)中.代码如下:
protected static void ValidateAppPath(String wfPath, String coordPath) throws XServletException { if (wfPath != null && coordPath != null) { throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0301, wfPath, coordPath); } else { if (wfPath == null && coordPath == null) { throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0302); } } }
这下就恍然大悟了,原来是这个工作流既是一般工作流,又是定时工作流,oozie不允许(里面,wfPath和coordPath都不为空)。于是跑到我的coord.properties中发现:
果真既配置了oozie.coord.application.path=${name_node}/user/${user.name}/workflow/apps/workflow
也配置了oozie.wf.application.path=${name_node}/user/${user.name}/workflow/apps/workflow。
如此的话,如果你是要启动定时工作流,只要注释掉oozie.wf.application.path就可以正常运行了.
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
OOZIE 配置和调度流程 ...* OOZIE 提交作业后报错:Error: E0901 : E0901: Namenode [nam,可能原因: Namenode 节点不可用或 HDFS 文件系统不可用。解决方式:检查 Namenode 节点和 HDFS 文件系统的可用性。
当从本地上传文件到HDFS中时报错 fs.FSInputChecker: Found checksum error: b[0, 69]=6d6f77656968616861686168616868616686168616861686861680a org.apache.hadoop.fs.ChecksumException: Checksum error: file:/...
andlaz/hadoop-oozie su oozie -c 'oozie-setup.sh sharelib create -fs hdfs://namenode:8020' 启动Ooozie docker run -d --name oozie -p 0.0.0.0:11000 -p 0.0.0.0:11001:11001 \ andlaz/hadoop-oozie su oozie ...
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcount hdfs://localhost:9000/user/hadoop/input hdfs://localhost:9000/user/hadoop/output ``` - 结果查看:`hadoop fs -cat hdfs...
Hadoop 技术内幕:深入解析Hadoop Common 和HDFS 架构设计与实现原理
Hadoop技术内幕:深入解析Hadoop Common 和HDFS 架构设计与实现原理 (大数据技术丛书) 原版书籍,非扫描版,使用kindle可以打开,也可以转换为epub使用ibooks打开
export HADOOP_HOME="/usr/local/hadoop/" export JAVA_HOME="/usr/local/hadoop/jdk1.6.0_24" export CLASSPATH="$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:${HADOOP_HOME}/lib/commons-logging-1.0.4.jar...
《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。...
Hadoop/etc/hadoop/slaves 的IP地址要变。 5个重要的配置文件逐个检查,IP地址需要变 2.配置文件确认无错误,看日志: 从logs日志中寻找slave的namenode为什么没有起来。 3.最后发现是hdfs中存在上次的数据,删掉...
对Hadoop中的HDFS、MapReduce、Hbase系列知识的介绍。如果想初略了解Hadoop 可下载观看
《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》还从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及Java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和...
本文主要讨论了在 Java Web 程序中上传文件到 Hadoop HDFS 文件系统中失败的原因分析及解决方法。通过对问题的分析和解决,可以总结出以下知识点: 1. Hadoop 文件上传失败的原因分析: 在上传文件到 Hadoop HDFS ...
[atguigu@hadoop102 oozie-4.0.0-cdh5.3.6]$ tar -zxvf oozie-examples.tar.gz 2)创建工作目录 [atguigu@hadoop102 oozie-4.0.0-cdh5.3.6]$ mkdir oozie-apps/ 3)拷贝任务模板到oozie-apps/目录 [atguigu@hadoop...
<value>/D:/Hadoop/hadoop-2.7.7/data/namenode</value> </property> <name>dfs.datanode.data.dir</name> <value>/D:/Hadoop/hadoop-2.7.7/data/datanode</value> </property> <name>dfs.permissions</...
HDFS(Hadoop Distributed File System)则是Hadoop的核心组件之一,负责数据的分布式存储。本篇将深入探讨Hadoop平台上的HDFS,以及如何在该平台上进行文件操作。 一、Hadoop平台基础 Hadoop是基于Java开发的,它...
# scp core-site.xml hdfs-site.xml mapred-site.xml hadoop3:/home/hadoop/hadoopinstall/hadoop-0.20.2/conf/ ``` 通过以上步骤,您可以成功搭建一个由一个NameNode和两个DataNodes组成的Hadoop集群。这为进行...
Hadoop大数据环境搭建步骤及软件下载地址