PhoneDriver.java配置Partitioner类(分区)时,没有设置ReduceTask的数量,导致程序默认一个分区。
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
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 PhoneDriver {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
Configuration configuration=new Configuration();
Job job=Job.getInstance(configuration);
// 配置启动类
job.setJarByClass(PhoneDriver.class);
// 配置Mapper类
job.setMapperClass(PhoneMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
// 配置Partitioner类(分区)
job.setPartitionerClass(PhonePartitioner.class);
// 配置区内聚合
job.setCombinerClass(PhoneCombiner.class);
// 配置Reducer类
job.setReducerClass(PhoneReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(LongWritable.class);
FileInputFormat.setInputPaths(job,new Path("G:\kgc\KB15\code\hadoopstu\in\demo2"));
Path outpath=new Path("G:\kgc\KB15\code\hadoopstu\out2");
FileSystem fs=FileSystem.get(outpath.toUri(),configuration);
if(fs.exists(outpath)){
fs.delete(outpath,true);
}
FileOutputFormat.setOutputPath(job,outpath);
job.waitForCompletion(true);
}
}
运行结果:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. PhoneMapper key:0 value:13524895568,zhangsan1 PhoneMapper key:23 value:13624895569,zhangsan2 PhoneMapper key:46 value:13724895570,zhangsan3 PhoneMapper key:69 value:13824895571,zhangsan4 PhoneMapper key:92 value:13924895572,zhangsan5 PhoneMapper key:115 value:13024895573,zhangsan6 PhoneMapper key:138 value:13124895574,zhangsan7 PhoneMapper key:161 value:13224895575,zhangsan8 PhoneMapper key:184 value:13324895576,zhangsan9 PhoneMapper key:207 value:13424895577,zhangsan10 PhoneMapper key:231 value:13524895578,zhangsan11 PhoneMapper key:255 value:13624895579,zhangsan12 PhoneMapper key:279 value:13724895580,zhangsan13 PhoneMapper key:303 value:13824895581,zhangsan14 PhoneMapper key:327 value:13924895582,zhangsan15 PhoneMapper key:351 value:13024895583,zhangsan16 PhoneMapper key:375 value:13124895584,zhangsan17 PhoneMapper key:399 value:13224895585,zhangsan18 PhoneMapper key:423 value:13324895586,zhangsan19 PhoneMapper key:447 value:13424895587,zhangsan20 PhoneMapper key:471 value:13524895588,zhangsan21 PhoneMapper key:495 value:13624895589,zhangsan22 PhoneMapper key:519 value:13724895590,zhangsan23 PhoneMapper key:543 value:13824895591,zhangsan24 PhoneMapper key:567 value:13924895592,zhangsan25 PhoneMapper key:591 value:13024895593,zhangsan26 PhoneMapper key:615 value:13124895594,zhangsan27 PhoneMapper key:639 value:13224895595,zhangsan28 PhoneMapper key:663 value:13324895596,zhangsan29 PhoneMapper key:687 value:13424895597,zhangsan30 PhoneMapper key:711 value:13524895598,zhangsan31 PhoneMapper key:735 value:13624895599,zhangsan32 PhoneMapper key:759 value:13724895600,zhangsan33 PhoneMapper key:783 value:13824895601,zhangsan34 PhoneMapper key:807 value:13924895602,zhangsan35 PhoneMapper key:831 value:13024895603,zhangsan36 PhoneMapper key:855 value:13124895604,zhangsan37 PhoneMapper key:879 value:13224895605,zhangsan38 PhoneMapper key:903 value:13324895606,zhangsan39 PhoneMapper key:927 value:13424895607,zhangsan40 PhoneMapper key:951 value:13524895608,zhangsan41 PhoneMapper key:975 value:13624895609,zhangsan42 PhoneMapper key:999 value:13724895610,zhangsan43 PhoneMapper key:1023 value:13824895611,zhangsan44 PhoneMapper key:1047 value:13924895612,zhangsan45 PhoneMapper key:1071 value:13024895613,zhangsan46 PhoneMapper key:1095 value:13124895614,zhangsan47 PhoneMapper key:1119 value:13224895615,zhangsan48 PhoneMapper key:1143 value:13324895616,zhangsan49 PhoneMapper key:1167 value:13424895617,zhangsan50 PhoneMapper key:1191 value:13524895618,zhangsan51 进入到 PhoneCombiner,Key:130 value:5 进入到 PhoneCombiner,Key:131 value:5 进入到 PhoneCombiner,Key:132 value:5 进入到 PhoneCombiner,Key:133 value:5 进入到 PhoneCombiner,Key:134 value:5 进入到 PhoneCombiner,Key:135 value:6 进入到 PhoneCombiner,Key:136 value:5 进入到 PhoneCombiner,Key:137 value:5 进入到 PhoneCombiner,Key:138 value:5 进入到 PhoneCombiner,Key:139 value:5 进入到 PhoneReducer,Key:130 value:5 进入到 PhoneReducer,Key:131 value:5 进入到 PhoneReducer,Key:132 value:5 进入到 PhoneReducer,Key:133 value:5 进入到 PhoneReducer,Key:134 value:5 进入到 PhoneReducer,Key:135 value:6 进入到 PhoneReducer,Key:136 value:5 进入到 PhoneReducer,Key:137 value:5 进入到 PhoneReducer,Key:138 value:5 进入到 PhoneReducer,Key:139 value:5 Process finished with exit code 0第二次调试:
PhoneCombiner.java的输出v没有与map阶段设置的输出v类型相同,导致程序运行了一次PhoneCombiner的reduce方法就结束了程序。
import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; import java.io.IOException; public class PhoneCombiner extends Reducer运行结果:{ @Override protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { System.out.print("进入到 PhoneCombiner,Key:"+key); int count=0; for (IntWritable intWritable: values) { count+=intWritable.get(); } System.out.println(" value:"+count); context.write(key,new LongWritable(count)); } }
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. PhoneMapper key:0 value:13524895568,zhangsan1 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:23 value:13624895569,zhangsan2 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:46 value:13724895570,zhangsan3 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:69 value:13824895571,zhangsan4 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:92 value:13924895572,zhangsan5 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:115 value:13024895573,zhangsan6 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:138 value:13124895574,zhangsan7 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:161 value:13224895575,zhangsan8 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:184 value:13324895576,zhangsan9 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:207 value:13424895577,zhangsan10 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:231 value:13524895578,zhangsan11 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:255 value:13624895579,zhangsan12 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:279 value:13724895580,zhangsan13 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:303 value:13824895581,zhangsan14 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:327 value:13924895582,zhangsan15 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:351 value:13024895583,zhangsan16 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:375 value:13124895584,zhangsan17 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:399 value:13224895585,zhangsan18 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:423 value:13324895586,zhangsan19 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:447 value:13424895587,zhangsan20 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:471 value:13524895588,zhangsan21 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:495 value:13624895589,zhangsan22 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:519 value:13724895590,zhangsan23 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:543 value:13824895591,zhangsan24 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:567 value:13924895592,zhangsan25 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:591 value:13024895593,zhangsan26 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:615 value:13124895594,zhangsan27 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:639 value:13224895595,zhangsan28 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:663 value:13324895596,zhangsan29 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:687 value:13424895597,zhangsan30 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:711 value:13524895598,zhangsan31 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:735 value:13624895599,zhangsan32 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:759 value:13724895600,zhangsan33 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:783 value:13824895601,zhangsan34 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:807 value:13924895602,zhangsan35 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:831 value:13024895603,zhangsan36 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:855 value:13124895604,zhangsan37 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:879 value:13224895605,zhangsan38 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:903 value:13324895606,zhangsan39 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:927 value:13424895607,zhangsan40 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:951 value:13524895608,zhangsan41 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:975 value:13624895609,zhangsan42 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:999 value:13724895610,zhangsan43 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:1023 value:13824895611,zhangsan44 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:1047 value:13924895612,zhangsan45 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:1071 value:13024895613,zhangsan46 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:1095 value:13124895614,zhangsan47 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:1119 value:13224895615,zhangsan48 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:1143 value:13324895616,zhangsan49 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:1167 value:13424895617,zhangsan50 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:1191 value:13524895618,zhangsan51 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 进入到 PhoneCombiner,Key:130 value:5 进入到 PhoneCombiner,Key:130 value:5 Process finished with exit code 0附正确代码
PhoneMapper.java
import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; import java.io.IOException; public class PhoneMapper extends Mapper{ Text text=new Text(); IntWritable intWritable=new IntWritable(); @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { System.out.println("PhoneMapper key:"+key.get()+" value:"+value.toString()); String phone = value.toString().split(",")[0].substring(0,3); text.set(phone); intWritable.set(1); context.write(text,intWritable); } }
PhonePartitioner.java
import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Partitioner; public class PhonePartitioner extends Partitioner{ @Override public int getPartition(Text text, IntWritable intWritable, int i) { System.out.println("执行PhoneMapper后,进入到PhonePartitioner,Key值:"+text); int pnum=0; switch (text.toString()){ case "131": pnum=1; break; case "132": pnum=2; break; case "133": pnum=3; break; case "134": pnum=4; break; case "135": pnum=5; break; case "136": pnum=6; break; case "137": pnum=7; break; case "138": pnum=8; break; case "139": pnum=9; break; default: break; } return pnum; } }
PhoneCombiner.java
import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; import java.io.IOException; public class PhoneCombiner extends Reducer{ @Override protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { System.out.print("进入到 PhoneCombiner,Key:"+key); int count=0; for (IntWritable intWritable: values) { count+=intWritable.get(); } System.out.println(" value:"+count); context.write(key,new IntWritable(count)); } }
PhoneReducer.java
import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; import java.io.IOException; public class PhoneReducer extends Reducer{ @Override protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { System.out.print("进入到 PhoneReducer,Key:"+key); int count=0; for (IntWritable intWritable: values) { count+=intWritable.get(); } System.out.println(" value:"+count); context.write(key,new LongWritable(count)); } }
PhoneDriver.java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
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 PhoneDriver {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
Configuration configuration=new Configuration();
Job job=Job.getInstance(configuration);
// 配置启动类
job.setJarByClass(PhoneDriver.class);
// 配置Mapper类
job.setMapperClass(PhoneMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
// 配置Partitioner类(分区)
job.setPartitionerClass(PhonePartitioner.class);
job.setNumReduceTasks(10);
// 配置区内聚合
job.setCombinerClass(PhoneCombiner.class);
// 配置Reducer类
job.setReducerClass(PhoneReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(LongWritable.class);
FileInputFormat.setInputPaths(job,new Path("G:\kgc\KB15\code\hadoopstu\in\demo2"));
Path outpath=new Path("G:\kgc\KB15\code\hadoopstu\out2");
FileSystem fs=FileSystem.get(outpath.toUri(),configuration);
if(fs.exists(outpath)){
fs.delete(outpath,true);
}
FileOutputFormat.setOutputPath(job,outpath);
job.waitForCompletion(true);
}
}
运行结果:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. PhoneMapper key:0 value:13524895568,zhangsan1 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:23 value:13624895569,zhangsan2 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:46 value:13724895570,zhangsan3 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:69 value:13824895571,zhangsan4 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:92 value:13924895572,zhangsan5 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:115 value:13024895573,zhangsan6 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:138 value:13124895574,zhangsan7 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:161 value:13224895575,zhangsan8 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:184 value:13324895576,zhangsan9 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:207 value:13424895577,zhangsan10 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:231 value:13524895578,zhangsan11 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:255 value:13624895579,zhangsan12 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:279 value:13724895580,zhangsan13 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:303 value:13824895581,zhangsan14 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:327 value:13924895582,zhangsan15 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:351 value:13024895583,zhangsan16 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:375 value:13124895584,zhangsan17 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:399 value:13224895585,zhangsan18 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:423 value:13324895586,zhangsan19 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:447 value:13424895587,zhangsan20 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:471 value:13524895588,zhangsan21 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:495 value:13624895589,zhangsan22 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:519 value:13724895590,zhangsan23 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:543 value:13824895591,zhangsan24 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:567 value:13924895592,zhangsan25 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:591 value:13024895593,zhangsan26 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:615 value:13124895594,zhangsan27 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:639 value:13224895595,zhangsan28 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:663 value:13324895596,zhangsan29 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:687 value:13424895597,zhangsan30 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:711 value:13524895598,zhangsan31 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:735 value:13624895599,zhangsan32 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:759 value:13724895600,zhangsan33 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:783 value:13824895601,zhangsan34 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:807 value:13924895602,zhangsan35 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:831 value:13024895603,zhangsan36 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:855 value:13124895604,zhangsan37 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:879 value:13224895605,zhangsan38 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:903 value:13324895606,zhangsan39 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:927 value:13424895607,zhangsan40 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:951 value:13524895608,zhangsan41 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 PhoneMapper key:975 value:13624895609,zhangsan42 执行PhoneMapper后,进入到PhonePartitioner,Key值:136 PhoneMapper key:999 value:13724895610,zhangsan43 执行PhoneMapper后,进入到PhonePartitioner,Key值:137 PhoneMapper key:1023 value:13824895611,zhangsan44 执行PhoneMapper后,进入到PhonePartitioner,Key值:138 PhoneMapper key:1047 value:13924895612,zhangsan45 执行PhoneMapper后,进入到PhonePartitioner,Key值:139 PhoneMapper key:1071 value:13024895613,zhangsan46 执行PhoneMapper后,进入到PhonePartitioner,Key值:130 PhoneMapper key:1095 value:13124895614,zhangsan47 执行PhoneMapper后,进入到PhonePartitioner,Key值:131 PhoneMapper key:1119 value:13224895615,zhangsan48 执行PhoneMapper后,进入到PhonePartitioner,Key值:132 PhoneMapper key:1143 value:13324895616,zhangsan49 执行PhoneMapper后,进入到PhonePartitioner,Key值:133 PhoneMapper key:1167 value:13424895617,zhangsan50 执行PhoneMapper后,进入到PhonePartitioner,Key值:134 PhoneMapper key:1191 value:13524895618,zhangsan51 执行PhoneMapper后,进入到PhonePartitioner,Key值:135 进入到 PhoneCombiner,Key:130 value:5 进入到 PhoneCombiner,Key:131 value:5 进入到 PhoneCombiner,Key:132 value:5 进入到 PhoneCombiner,Key:133 value:5 进入到 PhoneCombiner,Key:134 value:5 进入到 PhoneCombiner,Key:135 value:6 进入到 PhoneCombiner,Key:136 value:5 进入到 PhoneCombiner,Key:137 value:5 进入到 PhoneCombiner,Key:138 value:5 进入到 PhoneCombiner,Key:139 value:5 进入到 PhoneReducer,Key:130 value:5 进入到 PhoneReducer,Key:131 value:5 进入到 PhoneReducer,Key:132 value:5 进入到 PhoneReducer,Key:133 value:5 进入到 PhoneReducer,Key:134 value:5 进入到 PhoneReducer,Key:135 value:6 进入到 PhoneReducer,Key:136 value:5 进入到 PhoneReducer,Key:137 value:5 进入到 PhoneReducer,Key:138 value:5 进入到 PhoneReducer,Key:139 value:5 Process finished with exit code 0



