填空题

    编程题4:使用并行计算框架MapReduce实现单词统计,按要求如下补充代码。......// WordCountMapper类public class WordCountMapper extends Mapper {@Overrideprotected void map(LongWritable key, Text value, Context context) throws Exception {// 数据类型转换为StringString line = value.(1)();// 行内容按照分隔符逗号切割String[] words = line.split((2));// 遍历数组,标记<单词,1>for (String word : words) {// Map阶段处理的数据发送给Reduce阶段作为输入数据context.(3)(new Text(word), new IntWritable(1));}}}......// WordCountReducer类public class WordCountReducer extends Reducer {@Overrideprotected void reduce(Text key, Iterable value, Context context) throws Exception {//定义一个计数器int count = 0;//遍历一组迭代器,累加单词的总次数for ((4) iw : value) {count += iw.get();}// 把Reduce阶段处理的数据作为输出数据context.write(key, new IntWritable((5)));}}......// WordCount类......public class WordCountDriver {public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new (6)();// 创建配置对象Job job = Job.getInstance(conf);// 创建带配置的Job作业对象job.setJarByClass(WordCountDriver.class);// 装载主类job.(7)(WordCountMapper.class);// 装载WordCountMapperjob.setReducerClass(WordCountReducer.class);// 装载WordCountReducer//装载map阶段的输入类job.setMapOutputKeyClass((8));job.setMapOutputValueClass(IntWritable.class);//装载reducer阶段输出类job.(9)(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.setInputPaths(job, "/input");// 指定源路径FileOutputFormat.setOutputPath(job, new Path("/output"));// 指定目标路径// 提交jobboolean res =(10).waitForCompletion(true);System.out.println(res ? "job完成!" : "job未完成!");}}


    填空题

    编程题6:使用并行计算框架MapReduce实现TopN,按要求如下补充代码。......public class TopNMapper extends Mapper{private TreeMap repToRecordMap = new TreeMap();@Overrideprotected void map(LongWritable key, Text value,Context context){String line = value.(1)();String[] nums = line.split(" ");for(String num :nums){repToRecordMap.put(Integer.parseInt(num), " ");if((2).size()>5){repToRecordMap.remove(repToRecordMap.(3));}}}@Overrideprotected void cleanup(Context context){for(Integer i:repToRecordMap.keySet()){try {(4).write(NullWritable.get(), new IntWritable(i));} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.(5)();}}}}public class TopNReducer extends Reducer {private TreeMap repToRecordMap = (6)TreeMap(new Comparator() {public int (7)(Integer a,Integer b){return b-a;}});public void reduce(NullWritable key, Iterable values, Context context) throws IOException, InterruptedException{for((8)value:values){repToRecordMap.put(value.get(), " ");if(repToRecordMap.size()>5) {repToRecordMap.(9)(repToRecordMap.firstKey());}}for(Integer i:repToRecordMap.keySet()){context.write(NullWritable.get(),(10));}}}public class TopNRunner {public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = Job.getInstance(conf);job.setJarByClass((11));job.setMapperClass(TopNMapper.class);job.setReducerClass(TopNReducer.class);job.(12)(1);job.setMapOutputKeyClass(NullWritable.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(NullWritable.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.setInputPaths(job,new Path("/input"));(13).setOutputPath(job,new Path("/output"));boolean res = job.(14)(true);System.(15)(res?0:1);}}


    火星搜题