package com.netflix.aegisthus.util; import com.google.common.base.Throwables; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.JobStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; public class JobKiller extends Thread { private static final Logger log = LoggerFactory.getLogger(JobKiller.class); private final Job job; public JobKiller(Job job) { this.job = job; } @Override public void run() { try { if (job.getJobState() == JobStatus.State.RUNNING) { job.killJob(); } else { log.info("Job {} was already killed.", job.getJobID()); } } catch (IOException | InterruptedException e) { log.error("Error killing job {}", job.getJobID(), e); Throwables.propagate(e); } } }