分享

oozie求助:找不到action.xml文件

各位大神,请教一下,我通过oozie,在hadoop中执行shell脚本,oozie控制台打印下面的错误:

Oozie Launcher starts


Heart beat
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exception invoking main(), File does not exist: hdfs://Master:9000/user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/action.xml
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exception invoking main(), File does not exist: hdfs://Master:9000/user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/action.xml
java.io.FileNotFoundException: File does not exist: hdfs://Master:9000/user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/action.xml
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1093)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1085)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1085)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:337)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1970)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1939)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1915)
at org.apache.oozie.action.hadoop.LauncherMapper.setupMainConfiguration(LauncherMapper.java:423)
at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:171)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
java.io.FileNotFoundException: File does not exist: hdfs://traceMaster:9000/user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/action.xml
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1093)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1085)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1085)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:337)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1970)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1939)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1915)
at org.apache.oozie.action.hadoop.LauncherMapper.setupMainConfiguration(LauncherMapper.java:423)
at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:171)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)


Oozie Launcher failed, finishing Hadoop job gracefully


Oozie Launcher, uploading action data to HDFS sequence file: hdfs://Master:9000/user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/action-data.seq


Oozie Launcher ends


在oozie的web控制台上看到的是failed:
1.jpg

error message:JA017: Unknown hadoop job [job_local1945068546_0001] associated with action [0000000-150430155539137-oozie-hado-W@shell-node]. Failing this action!


查看hdfs上的/user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell目录,只有这三个文件,没有action.xml:
[root@Master oozie]# hdfs dfs -ls /user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell
Found 3 items
-rw-r--r-- 1 hadoop supergroup 24 2015-04-30 16:02 /user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/0000000-150430155539137-oozie-hado-W@shell-node@0
-rw-r--r-- 1 hadoop supergroup 777 2015-04-30 16:02 /user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/action-data.seq
drwxr-xr-x - hadoop supergroup 0 2015-04-30 16:02 /user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell/output


请教一下,action.xml这个文件是从哪来的?怎么会报这个错误?谢谢!

已有(7)人评论

跳转到指定楼层
arsenduan 发表于 2015-4-30 17:56:39


是不是权限问题,系统在执行的过程中,自动创建的。但是因为没有权限,不能创建
回复

使用道具 举报

jixianqiuxue 发表于 2015-4-30 18:01:46


这里相关内容,看看是否有帮助

跟着实例学Oozie
回复

使用道具 举报

chenai3223 发表于 2015-5-1 09:22:22
arsenduan 发表于 2015-4-30 17:56
是不是权限问题,系统在执行的过程中,自动创建的。但是因为没有权限,不能创建

查看了一下这个目录的权限,应该是有足够的权限可以创建:

drwxr-xr-x   - hadoop supergroup          0 2015-04-30 16:02 /user/hadoop/oozie-hado/0000000-150430155539137-oozie-hado-W/shell-node--shell
回复

使用道具 举报

chenai3223 发表于 2015-5-1 09:27:20
jixianqiuxue 发表于 2015-4-30 18:01
这里相关内容,看看是否有帮助

跟着实例学Oozie

谢谢,这个帖子的内容暂时对我这个问题没有帮助
回复

使用道具 举报

arsenduan 发表于 2015-5-1 20:11:20
chenai3223 发表于 2015-5-1 09:27
谢谢,这个帖子的内容暂时对我这个问题没有帮助



<workflow-app xmlns='uri:oozie:workflow:0.1' name='processDir'>

    <start to='getDirInfo' />

    <!-- STEP ONE -->
    <action name='getDirInfo'>
         <!--writes 2 properties: dir.num-files: returns -1 if dir doesn't exist,
             otherwise returns # of files in dir dir.age: returns -1 if dir doesn't exist,
             otherwise returns age of dir in days -->
         <java>
             <job-tracker>${jobTracker}</job-tracker>
             <name-node>${nameNode}</name-node>
             <main-class>com.navteq.oozie.GetDirInfo</main-class>
             <arg>${inputDir}</arg>
             <capture-output />
         </java>
         <ok to="makeIngestDecision" />
         <error to="fail" />
     </action>

     <!-- STEP TWO -->
     <decision name="makeIngestDecision">
         <switch>
             <!-- empty or doesn't exist -->
             <case to="end">
                ${wf:actionData('getDirInfo')['dir.num-files'] lt 0 ||
                (wf:actionData('getDirInfo')['dir.age'] lt 1 and
                wf:actionData('getDirInfo')['dir.num-files'] lt 24)}
             </case>
             <!-- # of files >= 24 -->
             <case to="ingest">
                ${wf:actionData('getDirInfo')['dir.num-files'] gt 23 ||
                wf:actionData('getDirInfo')['dir.age'] gt 6}
             </case>
             <default to="sendEmail"/>
         </switch>
     </decision>

     <!--EMAIL-->
     <action name="sendEmail">
          <java>
             <job-tracker>${jobTracker}</job-tracker>
             <name-node>${nameNode}</name-node>
             <main-class>com.navteq.oozie.StandaloneMailer</main-class>
             <arg>probedata2@navteq.com</arg>
             <arg>gregory.titievsky@navteq.com</arg>
             <arg>${inputDir}</arg>
             <arg>${wf:actionData('getDirInfo')['dir.num-files']}</arg>
             <arg>${wf:actionData('getDirInfo')['dir.age']}</arg>
          </java>
          <ok to="end" />
          <error to="fail" />
     </action>

     <!--INGESTION -->
     <action name="ingest">
          <java>
             <job-tracker>${jobTracker}</job-tracker>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${outputDir}" />
             </prepare>
             <configuration>
                 <property>
                    <name>mapred.reduce.tasks</name>
                    <value>300</value>
                 </property>
             </configuration>
             <main-class>com.navteq.probedata.drivers.ProbeIngest</main-class>
             <arg>-conf</arg>
             <arg>action.xml</arg>
             <arg>${inputDir}</arg>
             <arg>${outputDir}</arg>
          </java>
          <ok to=" archive-data" />
          <error to="ingest-fail" />
     </action>

     <!—Archive Data -->
     <action name="archive-data">
          <fs>
             <move source='${inputDir}' target='/probe/backup/${dirName}' />
             <delete path = '${inputDir}' />
          </fs>
          <ok to="end" />
          <error to="ingest-fail" />
     </action>

     <kill name="ingest-fail">
          <message>Ingestion failed, error
            message[${wf:errorMessage(wf:lastErrorNode())}]</message>
     </kill>

     <kill name="fail">
          <message>Java failed, error
            message[${wf:errorMessage(wf:lastErrorNode())}]</message>
     </kill>
     <end name='end' />
</workflow-app>
这里面的action.xml是否配置了


回复

使用道具 举报

chenai3223 发表于 2015-5-2 10:18:34
arsenduan 发表于 2015-5-1 20:11
这里面的action.xml是否配置了

这里的action.xml是一个入参吧?
回复

使用道具 举报

chenai3223 发表于 2015-5-8 15:34:32
我整个重装以后,就没这个问题了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条