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

实训任务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

原文地址:https://www.cnblogs.com/soft2408/p/9751777.html

时间: 2024-10-14 07:16:58

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

Mysql实训任务书

注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6635189537079296526/ 什么是数据库:数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据进行新增.截取.更新.删除等操作. 在经济管理的日常工作中,常常需要把某些相关的数据放进这样的"仓库",并根据管理的需要进行相应的处理. 严格来说,数据库是长期储存在计算机内.

郑重告之:智能合约开发实训营第4期学员招募正式启动!

各位同学,抱歉久等了- 这是终于到来的<以太坊智能合约全栈开发>实战特训营第四期的正式招募通知. <以太坊智能合约全栈开发>实战特训营是由硅谷密探和 celer network 共同打造的全球第一档·智能合约全栈开发实战课程,也是目前唯一一个实现来自中.美.澳.英.日.韩等多国学员在线互动学习的区块链技术实战特训课程. 为了保证教学质量,如今已调整为每期仅招募100人,参与有门槛,需经过层层审核,录取通过率一度不到10%,并非所有人都适合参与. 拉至文末可直接进行报名. 请点击此处

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

今天第一次用MySQL的触发器,怕忘了,赶紧写篇博客记录一下. 废话不说,先上语法: 1 CREATE TRIGGER trigger_name 2 { BEFORE | AFTER } { INSERT | UPDATE | DELETE } 3 ON tbl_name 4 FOR EACH ROW 5 trigger_body 事情的起因是这样的:我有一个人员信息表 pers.因为字段很多,就把中文字段单出来,另建了一个表 perscn.我希望当 pers 插入一条记录,perscn 也能自

.NET MVC4 实训记录之二(扩展WebSecurity模型下的UserProfile表)

使用VS2013创建MVC4项目后,自动生成的代码中默认使用WebSecurity模型创建用户管理,生成以下数据库: 用户信息只有ID和UserName,角色信息也只有两个基础字段.通常情况下这样的数据表不能满足我们的需求,因此对其进行扩展. 首先定义自己的用户信息.角色信息结构. 1 [Table("UserProfile")] 2 public class UserProfile 3 { 4 [Key] 5 [DatabaseGenerated(DatabaseGeneratedO

实训24 功能块的生成与调用 注意功能块的背景数据块 变量表最左侧的地址是系统自动生成的。前面讲 功能块与功能的区别是 功能块不能一个扫描周期完成,本功能块例子 确实不是一个扫描周期能完成,例如判断转速超速 可能过了好多扫描周期

实训24 功能块的生成与调用 一定要注意 功能块的背景数据块中 最左侧的地址 是自动生成的. 我只需要在功能块的程序中输入 符号 名称 例如 start stop tof …….等等. 如下图 功能块 是用户编写的有自己存储区(背景数据块)的逻辑块. 功能块主要用于执行在一个扫描周期内不能结束的操作. TOF是timer 数据类型 属于输入局部变量. 本例程的输入参数TOF的数据类型为Timer(定时器),TOF的实参应该为定时器的编号 例如T1 PRESPEED 是静止变量 STAT 初始值是

.NET MVC4 实训记录之四(Unit of work + Repository)

今日后开启进阶模式! 谈到MVC与EntityFramework,则不得不说一说事务与仓储(Unit of work + Repository). 仓储(Repository):领域对象集合.用于操作领域对象与数据库上下文(DbContext)的交互(在此不得不说一声,领域对象和数据库表对象还是有区别的.领域对象实际上是一组有业务关系的数据库对象的抽象.最简单的形式就是主表.关系表在同一个领域对象中进行定义.例如我们前几章看到的UserProfile,它即定义了用户信息,又定义了用户角色关系信息

MapReduce实现两表的Join--原理及python和java代码实现

用Hive一句话搞定的,但是有时必须要用mapreduce 方法介绍 1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧. 本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法. 2. 常见的join方法介绍 假设要进行join的数据分别来自File1和File2. 2.1 reduce side jo

.NET MVC4 实训记录之三(EntityFramework 与枚举)

EntityFramework对枚举的引入是从版本5开始的(如果没有记错的话).枚举可以很大程度上提高对程序的可读性.那么在EntityFramework的CodeFirst模式下,如何使用枚举呢?答案很简单:还是那么用! 看似废话,其实不然,看下面(修改上一篇中用户信息定义): /// <summary> /// 性别枚举 /// </summary> public enum Gender { Male, Female } public class UserProfile { [

网络实训——服务器应用系统的实践

1 设计内容与设计要求 1.1设计内容 课题10:服务器应用系统的实践 服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器.数据库服务器和应用程序服务器.运行以上软件的计算机或计算机系统也被称为服务器. 实训内容: (1)搭建简单的三层局域网环境 (2)部署Web服务器,并创建简单网页 (3)部署DNS服务器,并对Web服务器做域名解析 (4)部署DHCP服务器,对终端电脑实现动态IP获取 (5)部署FTP服务器,使终端电脑能访问并存储文件 (6)完成测试并写出详细课设报告 1