MapReduce编程初级实践(共7页).docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《MapReduce编程初级实践(共7页).docx》由会员分享,可在线阅读,更多相关《MapReduce编程初级实践(共7页).docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验3 MapReduce编程初级实践1. 实验目的1.通过实验掌握基本的MapReduce编程方法;2.掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。2. 实验平台已经配置完成的Hadoop伪分布式环境。3. 实验内容和要求1.编程实现文件合并和去重操作对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。下面是输入文件和输出文件的一个样例供参考。实验最终结果(合并的文件):代码如下:package com.Merge;import java.io
2、.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInpu
3、tFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class Merge public static class Map extends Mapper private static Text text = new Text(); public void map(Object key, Text value, Context context) throws IOException, InterruptedException text = value; context.write(text,
4、new Text(); public static class Reduce extends Reducer public void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException context.write(key, new Text(); public static void main(String args) throws Exception Configuration conf = new Configuration(); conf.set(fs.de
5、faultFS, hdfs:/localhost:9000); String otherArgs = new String input, output ; if (otherArgs.length != 2) System.err.println(Usage: Merge and duplicate removal ); System.exit(2); Job job = Job.getInstance(conf, Merge and duplicate removal); job.setJarByClass(Merge.class); job.setMapperClass(Map.class
6、); job.setReducerClass(Reduce.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); FileInputFormat.addInputPath(job, new Path(otherArgs0); FileOutputFormat.setOutputPath(job, new Path(otherArgs1); System.exit(job.waitForCompletion(true) ? 0 : 1); 2. 编写程序实现对输入文件的排序现在有多个输入文件
7、,每个文件中的每行内容均为一个整数。要求读取所有文件中的整数,进行升序排序后,输出到一个新的文件中,输出的数据格式为每行两个整数,第一个数字为第二个整数的排序位次,第二个整数为原待排列的整数。下面是输入文件和输出文件的一个样例供参考。实验结果截图:代码如下:package com.MergeSort;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;impor
8、t org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class MergeSort p
9、ublic static class Map extends Mapper private static IntWritable data = new IntWritable(); public void map(Object key, Text value, Context context) throws IOException, InterruptedException String line = value.toString(); data.set(Integer.parseInt(line); context.write(data, new IntWritable(1); public
10、 static class Reduce extends Reducer private static IntWritable linenum = new IntWritable(1); public void reduce(IntWritable key, Iterable values, Context context) throws IOException, InterruptedException for (IntWritable val : values) context.write(linenum, key); linenum = new IntWritable(linenum.g
11、et() + 1); public static void main(String args) throws Exception Configuration conf = new Configuration(); conf.set(fs.defaultFS, hdfs:/localhost:9000); String otherArgs = new String input2, output2 ; /* 直接设置输入参数 */ if (otherArgs.length != 2) System.err.println(Usage: mergesort ); System.exit(2); Jo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MapReduce 编程 初级 实践
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内