MapReduce实验——计算整数的最大值最小值

编程入门 行业动态 更新时间:2024-10-09 01:14:58

MapReduce实验——计算整数的<a href=https://www.elefans.com/category/jswz/34/1768932.html style=最大值最小值"/>

MapReduce实验——计算整数的最大值最小值

计算整数的最大值最小值

Map类
package MaxMin_03;import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class MyMap extendsMapper<LongWritable,Text, Text,LongWritable> {//为map设置一个固定的输出键private final Text keyText = new Text("K");private LongWritable val = new LongWritable(0);@Overrideprotected void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException {//为val对象设置读取的数值val.set(Long.parseLong(value.toString()));context.write(keyText,val);}
}
Reduce类
package MaxMin_03;import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;public class MyReduce extends Reducer<Text, LongWritable,Text,Text> {//设置变量max和min的初始值private long max = Long.MIN_VALUE;private long min = Long.MAX_VALUE;@Overrideprotected void reduce(Text key,Iterable<LongWritable> valueIn,Context context) throws IOException, InterruptedException {//循环得出最大值和最小值for(LongWritable val : valueIn){long tmp = val.get();if(tmp > max){max = tmp;}if(tmp < min){min = tmp;}}//最大值和最小值分别输出context.write(new Text("Max"),new Text(max + ""));context.write(new Text("Min"),new Text(min + ""));}
}
Job类
package MaxMin_03;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.io.Text;
import java.io.IOException;public class TestJob {public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();//1、获取作业对象Job job = Job.getInstance(conf);//2、设置主类job.setJarByClass(TestJob.class);//3、设置job参数job.setMapperClass(MyMap.class);job.setReducerClass(MyReduce.class);//4 set map reduce output typejob.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(LongWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(LongWritable.class);//5、设置job输入输出FileInputFormat.setInputPaths(job,new Path("file:///simple/maxmin.txt"));FileOutputFormat.setOutputPath(job,new Path("file:///simple/result"));//6 commit jobSystem.out.println(job.waitForCompletion(true) ? 0 : 1);;}
}

更多推荐

MapReduce实验——计算整数的最大值最小值

本文发布于:2024-03-04 14:07:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1709468.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最大值   整数   最小值   MapReduce

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!