【发布时间】:2016-03-01 22:16:58
【问题描述】:
我有以下需要实现的功能:
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 运行作业。
附:我是hadoop的新手,我可能会假设很多事情。
【问题讨论】: