public class MaxMinMapper extends Mapper<LongWritable, Text, Text, LongWritable> {
private Text textkey = new Text(); @Override protected void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException { String line = value.toString(); if(line.trim().length()>0){ context.write(new Text("textkey"), new LongWritable(Integer.valueOf(line.trim()))); } }
}
public class MaxMinReducer extends Reducer<Text, LongWritable, Text, LongWritable> {
Long max = Long.MIN_VALUE;//设置最大值
Long min = Long.MAX_VALUE;//设置最小值 @Override protected void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException { for (LongWritable val : values) { if(val.get()>max){ max = val.get(); } if(val.get()<min){ min = val.get(); }
} context.write(new Text("max"), new LongWritable(max)); context.write(new Text("min"), new LongWritable(min)); }
public class JobMain { public static void main(String[] args)throws Exception { Configuration configuration = new Configuration(); Job job = new Job(configuration,"max_min_job"); job.setJarByClass(JobMain.class);