我有一个Oozie工作流程,可以运行这样的map-reduce任务:
<action name="generate">
<map-reduce>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
...
<property>
<name>mapred.mapper.class</name>
<value>com.tendril.pr.report.generate.ReportGenerationMapper</value>
</property>
我的mapper类是ReportGenerationMapper,它实现了Mapper接口接口。这个类被实例化,并且hadoop系统调用map()方法就好了。在方法调用过程中,虽然发生了运行时异常并且在日志中出现如下:
配置:core-default.xml,core-site.xml,mapred-default.xml,mapred-site.xml,hdfs-default.xml,hdfs-site.xml,/ data / 1 / mapred / local /的TaskTracker /的TaskTracker /根/ jobcache / job_201402032014_4231 / job.xml com.tendril.pr.core.domain.TendrilException:无法检索属性null ...
这很好,但工作流程成功,我希望它失败。我似乎无法让它失败。我毫不费力地搜索了如何使运行此映射器的任务失败。我的oozie工作成功,并没有指出失败,没有深入研究这个任务和查看日志。我希望通过让任务和整个工作流失败来实现失败。关于如何实现这一目标的任何建议?
答案 0 :(得分:0)
请尝试捕获驱动程序类中的退出代码,并从那里手动抛出异常。