【大数据 复习】第7章 MapReduce(重中之重)

一、概念

1.MapReduce 设计就是“计算向数据靠拢”,而不是“数据向计算靠拢”,因为移动,数据需要大量的网络传输开销。

2.Hadoop MapReduce是分布式并行编程模型MapReduce的开源实现。

3.特点

(1)非共享式,容错性好。

(2)普通PC机,便宜,扩展性好。

(3)只有what,没有how,简单。

(4)使用场景:批处理、非实时、数据密集型。

4.MapReduce  采用“分而治之”策略

一个存储在分布式文件系统中的 大规模数据集,会被切分成许多独立的分片 (split),  这些分片可以被多个Map 任务并行处理。

5.MapReduce 1.0体系结构

(1)Hadoop MapReduce采用Master/Slave结构。

Master:是整个集群的唯一的全局管理者,功能是作业管理、状态监控和任务调度等,即MapReduce中的JobTracker。

Slave:负责任务的执行和任务状态的报告,即MapReduce中的TaskTracker。

(2)MapReduce体系结构主要由四个部分组成,分别是: Client 、JobTracker 、TaskTracker 以及Task。

(3)TaskTracker是JobTracker和Task之间的桥梁:

(4)JobTracker负责很多任务:

a.负责资源监控和作业调度

b.监控所有TaskTracker与Job的健康状况

c.跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度(TaskScheduler)。    

6.map函数和reduce函数:

(1)map接收原始的键值对进行一层处理,然后reduce只接受处理过的键值对,进行二次处理,大致流程如下:

(2)可以连着使用:

Map是映射,负责数据的过滤分法,将原始数据转化为键值对;

Reduce是合并,将具有相同key值的value进行处理后再输出新的键值对作为最终结果。

(3)Map 和Reduce操作需要我们自己定义相应Map 类和Reduce 类,而shuffle则是系统自动帮我们实现的。

(4)shuffle可以简单的理解为map的售后,但是同样是reduce的“售前”。

在map端主要是写入缓存,溢写操作,合并操作。

在reduce端主要是询问“前辈”map任务完成了吗,如果溢写了就帮reduce提前归并好然后发给reduce。

7.slot

(1)是执行 Map 或 Reduce 任务的计算资源单位。

(2)Map slot 用于处理输入数据的切片并生成中间结果,而 Reduce slot 则用于处理中间结果并生成最终输出。

(3)每个节点都有一定数量的 Map slot 和 Reduce slot,它们的数量可以根据集群配置和需求动态分配。

(4)有效地利用这些 slot 可以提升 MapReduce 作业的执行效率和性能。

二、习题

主观题

1. 试画出使用MapReduce对英语段落 ”Whatever is worth doing best Whatever is worth doing well”进行单词统计过程

答:

(1)Map阶段:

Mapper将输入的英语段落按照空格分割为单词,并对每个单词生成一个键值对,其中键为单词,值为1。

输入: "Whatever is worth doing best Whatever is worth doing well"

输出中间键值对:

(Whatever, 1), (is, 1), (worth, 1), (doing, 1), (best, 1), (Whatever, 1), (is, 1), (worth, 1), (doing, 1), (well, 1)

(2)Shuffle阶段:

对中间键值对按照键进行排序和分组,以便后续Reduce阶段对同一个键的值进行聚合处理。此处不需要额外的操作,因为Mapper已经按照单词生成了键值对。

(3) Reduce阶段:

Reducer对每个单词的键值对进行聚合,计算每个单词出现的总次数。

输入中间键值对:

(Whatever, [1, 1]), (best, [1]), (doing, [1, 1]), (is, [1, 1]), (well, [1]), (worth, [1, 1])

输出最终结果:

(Whatever, 2), (best, 1), (doing, 2), (is, 2), (well, 1), (worth, 2)

4. 使用MapReduce完成对下表中及格同学的筛选,描述编程设计实现过程(文字描述即可,不用写代码)。

答:

(1)Map阶段:

Mapper函数读取每一行学生记录,将学号和成绩作为输入。

对于每个学生记录,Mapper检查成绩是否及格(大于等于60分)。

如果成绩及格,Mapper输出键值对(学号,成绩)。

(2)Shuffle阶段

中间结果根据学号进行排序和分组,以便后续Reduce阶段对每个学生的成绩进行聚合处理。

(3)Reduce阶段:

Reducer函数接收每个学生的学号和成绩列表作为输入。

对于每个学生,Reducer检查其成绩列表中是否有成绩及格。

如果成绩列表中有成绩及格,Reducer输出该学生的学号和成绩。

总感觉reduce啥也没干。。。。。

7.分析描述Shuffle的执行过程

答:

(1)Map任务输出:Map任务生成键值对,并根据键的哈希值将其分区。

(2)本地排序:每个分区的键值对在本地磁盘上按键排序。

(3)数据传输:Reduce任务从各个Map任务所在的节点上拉取(pull)属于自己的分区数据。

(4) 数据合并:Reduce任务将拉取到的数据进行合并,准备进行Reduce处理。

单选题

2. Shuffle过程不包括下列哪个过程?()

A. 分区

B. 排序

C. 合并归并

D. 切分

正确答案:D

切分应该是map干的吧,虽然没说

3. Map和Reduce函数都是以( )作为输入。

A. Key

B. Text

C. 键值对

D. 文件块

正确答案:C

5. Reduce函数的任务是()

A. 通过Hash函数对数据进行排序

B. 对数据进行分区

C. 将输入的一系列具有相同Key的键值对以某种方式组合起来,输出处理后的键值对

D. 对数据进行解析得到键值对

正确答案:C

1.MapReduce的核心思想是 ( )

A. 分而治之

B. 流计算

C. 分布式存储

D. 批处理

正确答案: A

2.MapReduce处理海量数据的时候,中间数据存储在()

A. 内存

B. 磁盘

C. ResourceManager

D. Container

正确答案: B

3.属于MapReduce的设计理念的是。()

A. 数据向计算靠拢

B. 自行进行工作调度

C. 计算向数据靠拢

D. 无需负载均衡

正确答案: C

4.Map函数将输入的元素转换成键值对,下列说法不正确的是( )

A. 一个Map函数只能转换出一个键值对

B. Map转换出的键没有唯一性

C. 同一输入元素,可以通过一个Map任务生成具有相同键的多个键值对

D. 键不可以作为输出的身份标识

正确答案: A

5.每个MapReduce程序都需要一个()

A. Task

B. Partitioner

C. Job

D. Combiner

正确答案: C

多选题

6. 编写MapReduce程序时,()。

A. 编写Map处理逻辑

B. 编写Reduce处理逻辑

C. 编写main方法

D. 提前生成输出文件夹

正确答案:A,B,C

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL学习笔记-进阶篇-视图和存储过程

四、视图和存储过程 视图 存储过程 基本语法 创建 CREATE PROCEDURE ([参数列表]) BEGIN --SQL END; 调用 CALL 存储过程名([参数列表]) 查看 --查看指定数据库的存储过程及状态信息 SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SHCEMA…

indexedDB---掌握浏览器内建数据库的基本用法

1.认识indexedDB IndexedDB 是一个浏览器内建的数据库,它可以存放对象格式的数据,类似本地存储localstore,但是相比localStore 10MB的存储量,indexedDB可存储的数据量远超过这个数值,具体是多少呢? 默认情…

【软件设计】详细设计说明书(word原件,项目直接套用)

软件详细设计说明书 1.系统总体设计 2.性能设计 3.系统功能模块详细设计 4.数据库设计 5.接口设计 6.系统出错处理设计 7.系统处理规定 软件全套资料:本文末个人名片直接获取或者进主页。

C语言笔试题:实现把一个无符号整型数字的二进制序列反序后输出

目录 题目 实例 方法一:直接交换 方法二:间接交换 拓展 题目 编写一个函数,将一个无符号整数的所有位逆序(在32位机器下) 实例 例如有一个无符号整数 unsigned int num 32; unsigned int 在32位系统中占4个字…

洛谷 P10584 [蓝桥杯 2024 国 A] 数学题(整除分块+杜教筛)

题目 思路来源 登录 - Luogu Spilopelia 题解 参考了两篇洛谷题解&#xff0c;第一篇能得出这个式子&#xff0c;第二篇有比较严格的复杂度分析 结合去年蓝桥杯洛谷P9238&#xff0c;基本就能得出这题的正确做法 代码 #include<bits/stdc.h> #include<iostream&g…

测试辅助工具(抓包工具)的使用2 之 抓包工具的基本用法

1.过滤设置: Filters- --- 勾选use Filters- --- 下拉选择show only the following hosts ---- 输入域名或者ip地址(多个地址用;隔开) --- 点击action(Run filterset now) 2.删除数据 方式一:点击Remove all 方式二: 黑窗口输入cls,回车 删除一条数据:选中数据---右键选择Rem…

C++ | Leetcode C++题解之第179题最大数

题目&#xff1a; 题解&#xff1a; class Solution { public:string largestNumber(vector<int> &nums) {sort(nums.begin(), nums.end(), [](const int &x, const int &y) {return to_string(x) to_string(y) > to_string(y) to_string(x);});if (nu…

基于riscv架构的DAYU800开发板套件介绍

一、简介 润和-SCDAYU800 开发平台基于平头哥高性能 RISC-V 开源架构曳影 TH1520 芯片&#xff0c;集成4核高性能RISC-V处理器玄铁C910的平头哥曳影1520&#xff0c;AI算力达4TOPs支持蓝牙、音频、视频和摄像头等功能,支持多种视频输入输出接口,并提供丰富的扩展接口&#xff…

Apple - Cocoa Event Handling Guide

本文翻译整理自&#xff1a;Cocoa Event Handling Guide&#xff08; https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/Introduction/Introduction.html#//apple_ref/doc/uid/10000060i 文章目录 一、导言本文件的组织另见 二、事件…

展讯-系统定制修改

1.user版本使用adb 打开文件 build/make/core/main.mk ifeq ($(user_variant),user)ADDITIONAL_DEFAULT_PROPERTIES ro.adb.secure0endif 1.这个ro.adb.secure0&#xff08;0为不显示信任此电脑&#xff0c;1为显示信任此电脑&#xff09; ifeq (true,$(strip $(enable_tar…

centos7系统上安装MySQL8.4图文教程

本章教程&#xff0c;主要记录如何在CentOS7系统上安装MySQL8.4的详细步骤。 一、查看当前系统版本 cat /etc/centos-release二、安装步骤 1、创建mysql目录 cd /usr/local && mkdir mysql && cd mysql2、安装rpm包 yum install https://repo.mysql.com//m…

重复文件清理软件怎么用?分享3个删除重复文件的方法!

删除重复文件能够为电脑腾出很大的存储空间&#xff0c;不信&#xff1f;可以试试看哦&#xff01; 电脑使用久了&#xff0c;都会积累大量的文件&#xff0c;这其中难免会出现重复的文件&#xff0c;这些重复文件没有任何作用&#xff0c;而且会占用着电脑的空间&#xff0c;…

不需要new关键字创建实例?jQuery是如何做到的

这篇文章是jQuery源码专栏的开篇文章了&#xff0c;有人会问为什么都2024年了&#xff0c; 还要研究一个已经过时的框架呢&#xff0c;其实&#xff0c;jQuery对比vue和react这种响应式框架&#xff0c;其在使用上算是过时的&#xff0c;毕竟直接操作DOM远不如操作虚拟DOM来的方…

Python 深入学习局部函数和闭包函数

目录 局部函数与闭包函数的关联 变量捕获与状态保留 应用场景的交集与差异 闭包的本质 局部函数示例 闭包函数示例 局部函数和闭包函数之间存在着密切的联系&#xff0c;同时也有一些本质的区别。 局部函数与闭包函数的关联 局部函数&#xff08;Nested Function&#…

(八)ReactHooks使用规则

ReactHooks使用规则 只能在组件中或者其他自定义Hook函数中使用只能在组件的顶层调用&#xff0c;不能嵌套在if、for、其他函数中

Windows 11 安装hp 1020 plus 打印机驱动 (Ubuntu 20.04.3 LTS 部署cups局域网共享打印服务器)

1 win11 下载HP laserjet 1020 plus驱动,可以官网下载哦 链接下载 2 手动添加hp laserjet 1020驱动: 控制面板-->查看设备和打印机-->打印机和扫描仪-->添加设备-->我需要的打印机不在列表中-->通过手动添加-->按名称选择共享打印机 如果找不到&#xff0…

Android应用保活实践

} override fun onBind(intent: Intent): IBinder? { return mBilder } override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { //播放无声音乐 if (mediaPlayer null) { mediaPlayer MediaPlayer.create(this, R.raw.novioce) //声音设置为0 me…

Spring MVC拦截器、文件上传和全局异常处理

目录 1.拦截器1.1.什么是拦截器&#xff1f;1.2 拦截器的API1.3 拦截器的执行顺序1.5 自定义拦截器1.5 登录拦截器案例 2.文件上传2.1 添加依赖2.2 配置文件上传解析器2.3 编写控制器2.4 编写jsp页面2.5 注意事项 3.全局异常处理器3.1 异常处理思路3.2 创建异常处理器3.3 编写异…

FlinkCDC sink paimon 暂不支持exactly-once写入,而通过 幂等写

幂等写入&#xff1a; 一个幂等操作无论执行多少次都会返回同样的结果。例如&#xff0c;重复的向hashmap中插入同样的key-value对就是幂等操作&#xff0c;因为头一次插入操作之后所有的插入操作都不会改变这个hashmap&#xff0c;因为hashmap已经包含这个key-value对了。另一…