在MapReduce框架中,每个集群节点均有一个slave TaskTracker,但仅有一个master JobTracker。一个作业的所有处理任务将由master分发给不同的slave,slave负责完成由master所指派的任务,并且master调度和监控这些任务的执行情况。应用程序需要提供完成应用本身的map和reduce函数和作业参数的配置,并且需要指定输入/输出数据的路径。配置信息和作业,例如:jar包和可执行程序等,由Job client提交给JobTracker。然后,JobTracker负责将这些信息分发给slave,调度监控它们的执行,并将执行状态和诊断信息提供给job-client。MapReduce程序的主要作业配置步骤如下。
Configuration conf=getConf();//加载配置文件
Job job=new Job(conf,"MaxTemperature");//job对象控制整个作业的执行,创建MapReduce任务
job.setJarByClass(MaxTemperature.class);//设置主类,通过该类寻找作业执行的jar包
FileInputFormat.addInputPath(job,new Path(arg0[1]));//设置作业数据输入路径
FileOutputFormat.setOutputPath(job,new Path(arg0[1]));//设置作业执行结果输出路径
job.setInputFormatClass(TextInputFormat.class);//默认输入格式,它产生的键类型是LongWritable,值类型是Text。(www.xing528.com)
job.setMapperClass(MyMapper.class);//设置类MyMapper为完成Map任务的类
job.setMapOutputKeyClass(LongWritable.class);//设置map的键输出类型
job.setMapOutputValueClass(Text.class);//设置map的值输出类型
job.setReducerClass(MyReducer.class);//设置类MyReducer为完成Reducer任务的类
job.setOutputKeyClass(LongWritable.class);//设置输出键类型为LongWritablejob.setOutputValueClass(Text.class);//设置输出值类型Text
System.exit(job.waitForCompletion(true)?0:1);//等待程序执行完毕退出
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。