educoder--MapReduce基础实战各关卡通关答案

第1关:成绩统计:本关任务相关知识map处理阶段reduce处理阶段编程要求测试说明本关任务词频统计是最能体现MapReduce思想的程序,结构简单,上手容易。词频统计的大致功能是:统计单个或者多个文本文件中每个单词出现的次数,并将每个单词及其出现频率按照<k,v>键值对的形式输出,其基本执行流程如下图所示:由图可知:输入文本(可以不只一个),按行提取文本文档的单词,形成行<k1,v1>键值对,具体形式很多,例如<行数,字符偏移>等;通过Split
摘要由CSDN通过智能技术生成

第1关:成绩统计:

任务描述
相关知识
什么是MapReduce
如何使用MapReduce进行运算
代码解释
编程要求
测试说明
任务描述
本关任务:使用Map/Reduce计算班级中年龄最大的学生。

相关知识
为了完成本关任务,你需要掌握:1.什么是MapReduce,2.如何使用MapReduce进行运算。

什么是MapReduce
MapReduce是一种可用于数据处理的编程模型,我们现在设想一个场景,你接到一个任务,任务是:挖掘分析我国气象中心近年来的数据日志,该数据日志大小有3T,让你分析计算出每一年的最高气温,如果你现在只有一台计算机,如何处理呢?我想你应该会读取这些数据,并且将读取到的数据与目前的最大气温值进行比较。比较完所有的数据之后就可以得出最高气温了。不过以我们的经验都知道要处理这么多数据肯定是非常耗时的。

如果我现在给你三台机器,你会如何处理呢?看到下图你应该想到了:最好的处理方式是将这些数据切分成三块,然后分别计算处理这些数据(Map),处理完毕之后发送到一台机器上进行合并(merge),再计算合并之后的数据,归纳(reduce)并输出。

这就是一个比较完整的MapReduce的过程了。

开始你的任务吧,祝你成功!

答案代码--------------------------------------
import java.io.IOException;
import java.util.StringTokenizer;
 
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;
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.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {
   
    /********** Begin **********/
	//Mapper函数
    public static class TokenizerMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
   
        private final static IntWritable one = new IntWritable(1);
        private Text word = new Text();
        private int maxValue = 0;
        public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
   
            StringTokenizer itr = new StringTokenizer(value.toString(),"\n");
            while (itr.hasMoreTokens()) {
   
                String[] str = itr.nextToken().split(" ");
                String name = str[0];
                one.set(Integer.parseInt(str[1]));
                word.set(name);
                context.write(word,one);
            }
            //context.write(word,one);
        }
    }
    public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
   
        private IntWritable result = new IntWritable();
        public void reduce(Text key, Iterable<IntWritable> values, Context context)
                throws IOException, InterruptedException {
   
            int maxAge = 0;
            int age = 0;
            for (IntWritable intWritable 
  • 63
    点赞
  • 223
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: educoder mapreduce基础实战是一门教授MapReduce编程基础的课程。MapReduce是一种分布式计算模型,用于处理大规模数据集。该课程将教授MapReduce的基本概念、编程模型和实现方法,以及如何使用Hadoop框架来实现MapReduce程序。通过学习这门课程,学生将能够掌握MapReduce编程的基本技能,并能够应用它们来解决实际问题。 ### 回答2: Educoder MapReduce基础实战课程主要教授分布式计算框架MapReduce的基本原理和使用方法。MapReduce是一种面向大规模数据处理的编程模型,最初由Google提出,现已广泛应用于各类数据处理场景。 该课程由基础实战和综合运用两部分组成,其中基础实战部分介绍了MapReduce的原理和常用操作,包括数据的分片、Map任务、Reduce任务、Shuffle等。学生将通过编写代码实现一些简单的MapReduce案例,如单词计数和排序等。 课程中还介绍了Hadoop分布式文件系统(HDFS)的基础知识,以及Hadoop集群的搭建和配置方法。学生将学习如何使用Hadoop MapReduce框架在HDFS上对大数据进行处理和分析。 综合运用部分主要介绍了如何使用MapReduce框架处理实际的场景,如词频统计、日志分析等。此部分主要强调实践应用和业务场景,以便让学生更好地理解和掌握MapReduce框架。 该课程需要具备一定的Java编程基础和Linux操作系统使用经验。学生需要安装Hadoop软件并搭建Hadoop集群进行实验。课程还提供了在线编程环境,方便学生在不安装软件的情况下进行编程实践。 总的来说,Educoder MapReduce基础实战课程是一门较为全面的MapReduce实战课程,能够帮助学生掌握MapReduce的基本原理和实际应用方法,以及Hadoop集群的搭建和配置。同时,该课程强调实践应用和业务场景,有助于学生将理论知识与实际问题相结合,提高实际应用能力。 ### 回答3: MapReduce是一种分布式计算模型,最早由Google公司在2004年提出,通过将一个大型的计算任务分解为多个小任务,然后在多个计算节点上并行处理这些小任务来实现更快速和更高效的计算。 Educoder MapReduce基础实战课程主要介绍了MapReduce的基本概念、原理和应用场景,帮助学生深入了解MapReduce框架,并通过示例代码和实战演练帮助学生掌握MapReduce编程知识和技能。 这门课程包括以下几个方面的内容: 1. MapReduce基础概念和原理:学生首先了解MapReduce的基本概念和原理,包括Map和Reduce函数、分布式存储和计算、数据切片等。这部分内容让学生对于MapReduce框架有了初步的认识和了解。 2. MapReduce编程实践:通过实例代码的讲解和编写,学生可以掌握MapReduce编程的基本方法和技巧。例如,如何使用HadoopMapReduce API实现MapReduce程序,如何处理文本、序列化文件和二进制文件等。 3. MapReduce实战案例:在课程的后半部分,将学生通过实战案例学会如何利用MapReduce来处理大规模数据集。例如,如何使用MapReduce来进行数据清洗、数据转换、数据统计和数据分析等。 学生通过课程的学习和实践,能够深入了解MapReduce的原理和应用,可以掌握MapReduce编程的基本方法和技巧,也能够应用MapReduce框架来处理大规模数据集。这对于互联网和大数据行业的从业人员来说非常有用,也是现代计算机学习的重要内容。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值