实训任务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
实训任务05 MapReduce获取成绩表的最高分记录的更多相关文章
- 实训任务04 MapReduce编程入门
实训任务04 MapReduce编程入门 1.实训1:画图mapReduce处理过程 使用有短句“A friend in need is a friend in deed”,画出使用MapReduce ...
- Mysql实训任务书
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6635189537079296526/ 什么是数据库:数据库(Database)是按照数据结构来组织.存储和管理数据 ...
- MySQL触发器初试:当A表插入新记录,自动在B表中插入相同ID的记录
今天第一次用MySQL的触发器,怕忘了,赶紧写篇博客记录一下. 废话不说,先上语法: 1 CREATE TRIGGER trigger_name 2 { BEFORE | AFTER } { INSE ...
- 实训任务03: 使用Eclipse创建MapReduce工程
实训任务03: 使用Eclipse创建MapReduce工程 实训1: win7中使用Eclipse创建MapReduce工程 实训2:Centos 6.8系统中安装Eclipse 一.下载Eclip ...
- UML基础与Rose建模实训教程
目 录 第1章 初识UML. 1 1.1 初识UML用例图... 1 1.2 初识UML类图... 3 第2章 Rational Rose工具... 6 2.1 安装与配置Rational Ro ...
- Python实现MapReduce,wordcount实例,MapReduce实现两表的Join
Python实现MapReduce 下面使用mapreduce模式实现了一个简单的统计日志中单词出现次数的程序: from functools import reduce from multiproc ...
- 软件工程实训项目案例--Android移动应用开发
实训过程 角色分工 1.项目经理:负责项目的组织实施,制定项目计划,并进行跟踪管理 2.开发人员:对项目经理及项目负责 3.需求分析员:负责系统的需求获取和分析,并协助设计人员进行系统设计 4.系统设 ...
- Android实训案例(二)——Android下的CMD命令之关机重启以及重启recovery
Android实训案例(二)--Android下的CMD命令之关机重启以及重启recovery Android刚兴起的时候,着实让一些小众软件火了一把,切水果,Tom猫,吹裙子就是其中的代表,当然还有 ...
- Hadoop案例(七)MapReduce中多表合并
MapReduce中多表合并案例 一.案例需求 订单数据表t_order: id pid amount 1001 01 1 1002 02 2 1003 03 3 订单数据order.txt 商品信息 ...
随机推荐
- 极其简单的VSCode C++环境配置
下载我打包的文件VSCode-cpp.7z.001 和 VSCode-cpp.7z.002,解压. 在系统环境变量中添加:你解压的路径\Project\.vscode\MinGW\bin. 打开你解压 ...
- Git仓库删除大文件
Git仓库删除大文件 背景 当用Git久了,难免会手误或临时添加一些大文件到仓库中,即使以后添加进了.gitignore,甚至做了git rm,但是Git为了保证版本可回退,history pack里 ...
- React Native图片缓存解决方案
1. react-native-fetch-blob 将图片存在本地的一个东西 2. react-native-img-cache 自动缓存的一个东西 上面装好后 就可以使用啦 import {Cac ...
- Getting a handle on
Getting a handle on 丑闻处理 Corporate crises drive the media and politicians wild.But do they damage sh ...
- log4.net使用指南
1.简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断 ...
- 如何快速连接无线Wifi 使用二维码
无线Wifi现在已经很普及了,无论是在家.还是在单位.书店.餐馆.咖啡馆等公共场所,只要手机打开Wifi,选择相应的无线Wifi热点,手工输入密码后,即可通过无线Wifi访问互联网. 如何让用户更方便 ...
- JDK内置工具使用
- Evaluate X and Y returned from the differential equation solvers using printput frequency in Python的代码
把内容过程中经常用到的一些内容段做个备份,如下的内容是关于Evaluate X and Y returned from the differential equation solvers using ...
- Mysql 更新时间(加上或者减去一段时间)
Mysql时间加减函数为date_add().date_sub() 定义和用法 DATE_ADD() 函数向日期添加指定的时间间隔. DATE_SUB() 函数向日期减少指定的时间间隔. 语法 DAT ...
- springboot自定义starter
1,创建一个空工程 2,new一个Modules ---------------- maven (启动器) : springboottest-spring-boot-starter 3,new一个M ...