我有以下的功能,我需要實現:如何從另一個程序運行hadoop jar?
public void CreateMRJob(String jobInputLocation, String jobJarLocation);
這似乎相當簡單和重複的問題,但我想在一個單獨的文件執行工作的初始化(WPMampReduce.java爲附在下面),因爲用戶將被允許編輯它的一些部分。這就是我的意思是,當我說初始化工作在一個單獨的文件:
// WPMapReduce.java
public class WPMapReduce {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "WPMapReduce");
job.setSpeculativeExecution(false);
job.setReduceSpeculativeExecution(false);
job.setJarByClass(WPMapReduce.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setNumReduceTasks(1);
job.setMapperClass(Map.class);
job.setReducerClass(Reduce.class);
job.setSpeculativeExecution(false);
job.setReduceSpeculativeExecution(false);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.waitForCompletion(true);
}
}
我不知道我將如何設置的jar文件要運行的作業,然後再從功能CreateMRJob這是工作在不同的文件中。
P.S.我是hadoop的新手,我可能會承擔很多事情。來執行,這將是通過創建在Java中使用的Runtime.exec()來獲得(在Linux或Windows中的MAC或CMD端子)訪問命令行的子過程和設定的參數和運行