2013-02-27 67 views
0

我的作业在执行map-reduce步骤之前有一些例外情况,但作业并未死亡。如何配置hadoop使得作业在异常之后被杀死?未杀死Hadoop作业

调用主类现在

的心跳 的心跳

完成

Oozie的启动主类的调用结束

标准错误日志

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Unknown host specified) 
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:577) 
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:792) 
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:815) 
    at com.seven.crcs.export.dao.ReportDAOImpl.recreateReportEntity(ReportDAOImpl.java:151) 
    at com.seven.crcs.export.dao.ReportDAOImpl.saveActiveUserCount(ReportDAOImpl.java:93) 
    at com.seven.crcs.export.ReportJdbcExporter.saveActiveUserCount(ReportJdbcExporter.java:55) 
    at com.seven.dataprocessor.oc.jobs.reports.export.day.ExportDailyUserReducer.exportUserCounts(ExportDailyUserReducer.java:32) 
    at com.seven.dataprocessor.oc.jobs.reports.export.ExportActiveUser 
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Unknown host specified) 

而且

2013-02-28 06:06:46,487 INFO org.apache.hadoop.mapred.JobClient: Task Id : attempt_201302270945_0181_r_000000_0, Status : FAILED 
2013-02-28 06:07:00,600 INFO org.apache.hadoop.mapred.JobClient: Task Id : attempt_201302270945_0181_r_000000_1, Status : FAILED 
2013-02-28 06:07:16,650 INFO org.apache.hadoop.mapred.JobClient: Task Id : attempt_201302270945_0181_r_000000_2, Status : FAILED 
2013-02-28 06:07:31,731 INFO org.apache.hadoop.mapred.JobClient: Job complete: job_201302270945_0181 

但作业完成SUCCEEDED

+0

显示异常详细信息 – 2013-02-28 05:07:58

回答

0

你的工作竟是终止,但只有经过3次失败的map任务的尝试为任务ID显示:

  • attempt_201302270945_0181_r_000000_
  • 企图_201302270945_0181_r_000000_
  • 企图t_201302270945_0181_r_000000_

您可以通过设置parametermapred.map.max.attempts1或使用JobConf#setMaxMapAttempts(int)JobConf#setMaxMapAttempts限制每个任务最大的尝试次数。

这将导致您的地图任务在第一个异常时失败,从而更快地终止您的工作。

+0

我设置了这个参数,但我的作业没有写出异常并且成功完成。 – vaifer 2013-02-28 20:14:30

+0

尝试设置最大值。失败映射的百分比并将任务减少到0:'jobConf.setMaxMapTaskFailuresPercent(0)'和'jobConf.setMaxReduceTaskFailuresPercent(0)'。根据[JavaDoc](http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/JobConf.html#setMaxMapTaskFailuresPercent(int)),它应该立即将作业标记为失败首先失败的地图或减少任务。 – harpun 2013-02-28 20:25:48

+0

我不使用class JobConf,我使用class Job。 – vaifer 2013-02-28 21:17:51