期末试卷资料 联系客服

发布时间 : 星期三 文章期末试卷资料更新完毕开始阅读

} public static class Reduce extends Reducer { private IntWritable result = new IntWritable(); public void reduce(Text key、Iterable values、Context context )throws IOException, InterruptedException { int sum = 0; for (IntWritableval : values) sum += val.get(); result.set(sum); context.write(key,result); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = new Job(conf); job.setJarByClass(WordCount.class); job.setMapperClass(Map.class); job.setCombinerClass(Reduce.class); job.setReducerClass(Reduce.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(\ FileOutputFormat.setOutputPath(job, new Path(\ System.exit(job.waitForCompletion(true) ? 0 : 1); } }

public class sort { context.write(data,newIntWritable(1)); } } public static class Mapextends Mapper{ private static IntWritable data=new IntWritable(); public void map(Object key,Text value, Context context ) throws IOException, InterruptedException { String str=value.toString(); Integer i=Integer.parseInt(str); data.set(i); public static class Reduceextends Reducer { private static Text text=new Text(\ public void reduce(IntWritable key, Iterable values, Context context ) throws IOException, InterruptedException { for(IntWritableval:values){ context.write(key ,text); } } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = new Job(conf); }

job.setJarByClass(sort.class); job.setMapperClass(Map.class); job.setCombinerClass(Reduce.class); job.setReducerClass(Reduce.class); job.setOutputKeyClass(IntWritable.class); job.setOutputValueClass(Text.class); FileInputFormat.addInputPath(job, new Path(\ FileOutputFormat.setOutputPath(job, new Path(\ System.exit(job.waitForCompletion(true) ? 0 : 1); } 3.描述数据量的单位,从小到大的顺序是:(C) A. MB

(1)MapReduce应用将一个列表作为参数传递给MapReduce处理模块;

(2)MapReduce处理模块将整个列表拆分为单独的数据对,分发给对应的mapper进行处理。

(3)mapper根据函数定义的处理过程,对进行处理,生成列表。

(4)所有的mapper的处理结果结合成一个大的列表,并将键相同的数据对合并,生成新的键值对,分发给reducer进行处理,其中[v2]是同一个键k2下的所有值的数组。

(5)reducer根据函数定义的处理过程,对进行处理,将最后的结果以列表的形式输出。

5.(简答)数据写入过程(P106-107)

(1)Client向NameNode发出创建文件请求

(2)NameNode在确认此文件没有重名文件,且Client有写入权限后,在命名空间创建此文件的对应记录,并将成功创建的信息返回给Client。

(3)Client将数据拆分后放入一个数据队列,并向NameNode请求分配一些用于存放数据的数据块信息及DataNode地址。

(4)接着,每个数据块会写入由NameNode分配的多个DataNode节点,Client向第一个DataNode写入数据块,第一个DataNode会将数据块复制给第二个DataNode,第二个复制给第三个,直到所有分配的DataNode。每个DataNode完成一个数据块的写入后,会向Client报告已完成,同时向NameNode报告已完成。

(5)所有数据块都写入完成后,Client结束本次文件操作。