package bigdata;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
public class PersonDriver {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
// 获取配置文件和job对象
Configuration configuration = new Configuration();
Job job = Job.getInstance(configuration);
// 设置jar的路径
job.setJarByClass(PersonDriver.class);
// 设置mapper类和reducer类
job.setMapperClass(PersonMapper.class);
job.setReducerClass(PersonReduce.class);
// 设置mapper输出的key和value的数据类型
job.setMapOutputKeyClass(PersonBean.class);
job.setMapOutputValueClass(NullWritable.class);
// 设置reduce输出的key和value的数据类型
job.setOutputKeyClass(PersonBean.class);
job.setOutputValueClass(NullWritable.class);
// 设置自定义分区的类
job.setPartitionerClass(PersonPartition.class);
// 设置ReduceTask的数量
job.setNumReduceTasks(3);
String INPUT_PATH = "./datas/data01.txt";
String OUTPUT_PATH = "./dd";
FileInputFormat.addInputPath(job, new Path(INPUT_PATH));
FileOutputFormat.setOutputPath(job, new Path(OUTPUT_PATH));
FileSystem fs = FileSystem.get(new Configuration());
if (fs.exists(new Path(OUTPUT_PATH))) {
fs.delete(new Path(OUTPUT_PATH), true);
}
// 提交计算任务(job)
boolean result = job.waitForCompletion(true);
System.exit(result ? 0:1);
}
}
【无标题】2222222
最新推荐文章于 2024-10-04 18:47:42 发布