实训任务05  MapReduce获取成绩表的最高分记录

实训1:统计用户纺问次数

任务描述:

统计用户在2016年度每个自然日的总访问次数。原始数据文件中提供了用户名称与访问日期。这个任务就是要获取以每个自然日为单位的所有用户访问次数的累加值。如果通过MapReduce编程实现这个任务,首先要考虑的是,Mapper与Reducer各自的处理逻辑是怎样的;然后根据处理逻辑编写出核心代码;最后在Eclipse中编写完整代码,编译打包后提交给集群运行。

分析思路和逻辑

(1)       输入/输出格式。

这里社交网站用户的访问日期在格式上都属于文本格式,访问次数为整型数据格式。其组成的键值对为<访问日期,访问次数>,因此Mapper的输出与Reducer的输出都选用Text类与IntWritble类。

(2)       Mapper要实现的计算逻辑

Map函数的主要任务是读取用户访问文件中的数据,输出所有访问日期与初始次数的键值对。<访问日期,1 >

(3)       Reducer要实现的计算逻辑

读取Mapper输出的键值对<访问日期,1>,进行累加。

例:user_login.txt访问日期格式如下:

程序代码如下:

操作步骤:

1.编写以下代码:dailyAccessCount.java,完整内容如下所示。

2.编译生成dailyAccessCount.jar。

3.上传dailyAccessCount.jar到Hadoop集群服务器节点。

Hdfs dfs  -put  /root/hadooptmp/user_login.txt  /user/test

4.在Hadoop集群服务器的终端,以hadoop jar命令提交任务。代码如下

Hadoop jar dailyAccessCount.jar \

/user/root/user_login.txt \

/user/root/AccessCount

实训要求:

分析以上代码,按给出的dailyAccessCount.txt程序代码进行编译运行。将运行结果截图在下面

实训2获取成绩表的最高分记录

1.训练要点

(1)掌握MapReduce的执行流程。

(2)掌握基础的MapReduce程序编写。

(3)掌握MapReduce程序的输人输出格式。

2.需求说明

有一个样例文件subject_score即成绩表A。文件中的每一行数据包含两个字段,科 目和分数。要求获取成绩列表中每个科目成绩最高的记录,并将结果输出到最高成绩表B.

成绩表A的部分内容:

语文

73

数学

97

英语

21

物理

72

化学

49

生物

69

语文

106

数学

112

英语

38

最高成绩表B.内容部分内容:

语文

99

数学

149

英语

122

物理

143

化学

120

3.实现思路及步骤

(1)在Mapper类中,mapi 两数资取成绩表人中的数据,在技将读取的数据以空格(参 和服中的格式)分部,级健值对科良源即设发物出健值对类强为 <Text,IntWitable>

(2)在 Reducer中, 由于mp所数输出健值对为想是Tat hwnhe.所以Reise fnw 针对相同的健(即科目1,遍历比较它的值 terable AntWiuble 接收的键值对是-Tet. henbie 最后输出健值对科目,最高成绩>。 (即成绩),找出最高值(即最高成绩)。

4.实训要求:

参考实训1程序代码,完成获取成绩表的最高分记录编程,将代码复制如下,结果截图到下面。参考文章:https://blog.csdn.net/meiLin_Ya/article/details/80811698

实训任务05 MapReduce获取成绩表的最高分记录的更多相关文章

  1. 实训任务04 MapReduce编程入门

    实训任务04 MapReduce编程入门 1.实训1:画图mapReduce处理过程 使用有短句“A friend in need is a friend in deed”,画出使用MapReduce ...

  2. Mysql实训任务书

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6635189537079296526/ 什么是数据库:数据库(Database)是按照数据结构来组织.存储和管理数据 ...

  3. MySQL触发器初试:当A表插入新记录,自动在B表中插入相同ID的记录

    今天第一次用MySQL的触发器,怕忘了,赶紧写篇博客记录一下. 废话不说,先上语法: 1 CREATE TRIGGER trigger_name 2 { BEFORE | AFTER } { INSE ...

  4. 实训任务03: 使用Eclipse创建MapReduce工程

    实训任务03: 使用Eclipse创建MapReduce工程 实训1: win7中使用Eclipse创建MapReduce工程 实训2:Centos 6.8系统中安装Eclipse 一.下载Eclip ...

  5. UML基础与Rose建模实训教程

    目  录 第1章  初识UML. 1 1.1 初识UML用例图... 1 1.2 初识UML类图... 3 第2章  Rational Rose工具... 6 2.1 安装与配置Rational Ro ...

  6. Python实现MapReduce,wordcount实例,MapReduce实现两表的Join

    Python实现MapReduce 下面使用mapreduce模式实现了一个简单的统计日志中单词出现次数的程序: from functools import reduce from multiproc ...

  7. 软件工程实训项目案例--Android移动应用开发

    实训过程 角色分工 1.项目经理:负责项目的组织实施,制定项目计划,并进行跟踪管理 2.开发人员:对项目经理及项目负责 3.需求分析员:负责系统的需求获取和分析,并协助设计人员进行系统设计 4.系统设 ...

  8. Android实训案例(二)——Android下的CMD命令之关机重启以及重启recovery

    Android实训案例(二)--Android下的CMD命令之关机重启以及重启recovery Android刚兴起的时候,着实让一些小众软件火了一把,切水果,Tom猫,吹裙子就是其中的代表,当然还有 ...

  9. Hadoop案例(七)MapReduce中多表合并

    MapReduce中多表合并案例 一.案例需求 订单数据表t_order: id pid amount 1001 01 1 1002 02 2 1003 03 3 订单数据order.txt 商品信息 ...

随机推荐

  1. flutter插件汇总2

    作者:知乎用户链接:https://www.zhihu.com/question/307594373/answer/568969429来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  2. express中cookie的使用

    一.Cookie 简介● cookie 是存储于访问者的计算机中的变量.可以让我们用同一个浏览器访问同一个域名的时候共享数据.● HTTP 是无状态协议.简单地说,当你浏览了一个页面,然后转到同一个网 ...

  3. Git 帮助

    Git 配置 配置 git config --global user.name "..." git config --global user.email "...&quo ...

  4. python程序—士兵出击

    class Gun: def __init__(self,gun_type): self.gun_type=gun_type self.bullet_count= def add_bullet(sel ...

  5. SSH无法连接到服务器

    SSH服务器会无法连接,有时候并不是密码的问题,可能由于你上次改了密码(就算改成跟上次一样也是一个效果)导致家目录下的known_hosts(/root/.ssh/known_hosts)不一样了并且 ...

  6. spring xml配置注入改为手动注入过程

    项目中需要使用MQ组件来接受消息,但是有的时候,在使用的时候,并不能满足spring注入的条件,无法注入.例如 在jfinal的config的afterJFinalStart中,由于jfinal集成s ...

  7. obfuscate 混淆 verb

  8. 《javascript经典入门》-day01

    <javascript经典入门>-day01 1.了解JavaScript 01.浏览器每次加载和显示页面时,都在内存里创建页面及其全部元素的一个内部表示体系,,也就是DOM.在DOM里, ...

  9. Lua 用指定字符或字符串分割输入字符串,返回包含分割结果的数组

    // 用指定字符或字符串分割输入字符串,返回包含分割结果的数组 // @function [parent=#string] split // @param string input 输入字符串 // ...

  10. java的toString()及包装类的实现--Integer重点学习

    1. toString()来源 2. toString()目的 3. toString()实现(JDK8) 1. toString()来源 源于java.lang.Object类,源码如下: /** ...