package edu.isi.karma.mapreduce.driver; import java.io.File; import java.io.FileInputStream; import java.util.Properties; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.util.Tool; public abstract class KarmaProcessor extends Configured implements Tool{ public abstract Job configure(Properties p ) throws Exception; public void configureCommonSettings(Configuration conf, Properties p) { if(p.getProperty("fs.default.name") != null) { conf.setIfUnset("fs.default.name", p.getProperty("fs.default.name")); } if(p.getProperty("mapred.job.tracker")!= null) { conf.setIfUnset("mapred.job.tracker", p.getProperty("mapred.job.tracker")); } if(p.getProperty("model.uri") != null) { conf.setIfUnset("model.uri", p.getProperty("model.uri")); } if(p.getProperty("model.file") != null) { conf.setIfUnset("model.file", p.getProperty("model.file")); } if(p.getProperty("karma.input.type") != null) { conf.setIfUnset("karma.input.type", p.getProperty("karma.input.type")); } if(p.getProperty("context.uri") != null) { conf.setIfUnset("context.uri", p.getProperty("context.uri")); } if(p.getProperty("rdf.generation.root") != null) { conf.setIfUnset("rdf.generation.root", p.getProperty("rdf.generation.root")); } if(p.getProperty("karma.input.header") != null) { conf.setIfUnset("karma.input.header", p.getProperty("karma.input.header")); } if(p.getProperty("karma.input.delimiter")!= null) { conf.setIfUnset("karma.input.delimiter", p.getProperty("karma.input.delimiter")); } if(p.getProperty("rdf.generation.selection") != null) { conf.setIfUnset("rdf.generation.selection", p.getProperty("rdf.generation.selection")); } if(p.getProperty("base.uri") != null) { conf.setIfUnset("base.uri", p.getProperty("base.uri")); } } public int run(String[] args) throws Exception { Properties p = new Properties(); p.load(new FileInputStream(new File(args[0]))); Job job = configure(p); if(!job.waitForCompletion(true)) { System.err.println("Unable to finish job"); return -1; } return 0; } }