在CSDN上看了很多做二次排序的,但总感觉自己看的都很蒙蔽,最后请教了老师,自己完成了二次排序,在这里和大家分享一下。
先上代码:
这个是我的 主函数、自定义mapper、自定义reducer
public class myGameFive {
public static void main(String [] args) throws IOException, ClassNotFoundException, InterruptedException {
//设置一个config对象 连接集群
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://locahost:9000");
//设置job对象 指定jar map reduce 输出函数类型 格式化方法 输入路径 输出路径 退出
Job job = Job.getInstance(conf,"myGameThree");
job.setJarByClass(myGameFive.class);
job.setMapperClass(myGameMapper.class);
job.setReducerClass(myGameReducer.class);
//如果mapper的 3,4 参数 和reduce的3,4参数一样,则可以省去前两行
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(NullWritable.class);
//格式化方法:一、第一个参数为偏移量 第二个参数为正航内容的值 类型 LongWritable Text
job