大数据学习(16)-mapreduce详解

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


在MapReduce中,Map阶段和Reduce阶段分别执行以下任务:

  1. Map阶段:Map阶段的任务是处理输入数据并生成一系列的键值对(key/value pairs)。Map函数会对每个输入数据执行操作,并将结果写入到一个本地磁盘上的临时文件中。Map阶段的任务是在每个单独的Map任务中完成的,这些Map任务是在Map阶段启动的。

在Hadoop MapReduce中,Map阶段的任务如下:

  • 从HDFS中的文件读取数据。
  • 将数据拆分成键值对。
  • 对每个键值对执行Map函数,生成新的键值对。
  • 将生成的键值对写入到本地磁盘上。
  1. Reduce阶段:Reduce阶段的任务是处理Map阶段生成的键值对并生成最终的输出结果。Reduce函数会对每个键执行操作,并将结果写入到最终的输出文件中。Reduce阶段的任务是在每个单独的Reduce任务中完成的,这些Reduce任务是在Reduce阶段启动的。

在Hadoop MapReduce中,Reduce阶段的任务如下:

  • 从本地磁盘上读取Map阶段的输出数据。
  • 将数据合并成一个大文件。
  • 对合并后的数据进行排序。
  • 对排序后的键值对执行Reduce函数。
  • 将输出的键值对写入到HDFS文件中。

在Hive中,当我们需要进行分组聚合操作时,通常会使用MapReduce框架来处理大规模的数据。传统的方法是在Map阶段将数据按照分组字段进行分区,然后将结果发送到Reduce阶段进行聚合运算。这种方法需要在Reduce阶段处理所有分组的 数据,因此当数据量很大时,Reduce阶段可能会成为瓶颈。

为了解决这个问题,Hive引入了map-side聚合的优化方法。在map-side聚合中,我们在Map阶段不仅仅只是将数据按照分组字段进行分区,而是利用一个hash table来维护每个分组的数据。在遍历数据的过程中,我们会对每个分组的数据进行部分的聚合运算,然后将聚合的结果存储在hash table中。

接下来,我们将聚合的结果按照分组字段进行分区,并将每个分区的结果发送到Reduce阶段。在Reduce阶段,我们只需要对每个分组的数据进行最终的聚合运算,这样就可以大大减少需要处理的数据量。因此,这种方法可以有效减少shuffle的数据量,提高分组聚合运算的效率。

启用map-side聚合的方法是设置hive.map.aggr=true参数。此外,还可以通过设置hive.map.aggr.hash.min.reduction参数来检测源表数据是否适合进行map-side聚合。这个参数用于指定当源表数据中具有相同分组字段值的行数小于某个阈值时,才适合使用map-side聚合。

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

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

相关文章

企业c#语言源代码防泄密解决方案

在当今数字化时代,企业的核心业务往往依赖于软件应用程序。为了保护企业的知识产权和敏感信息,源代码的保密至关重要。对于制造类企业尤其是智能制造业来讲,最近几年是高速发展的时期,很多公司在做工厂流水线设备时,就…

Python学习笔记——类、魔术方法

食用说明:本笔记适用于有一定编程基础的伙伴们。希望有助于各位! 类 类的运用很常见:在大部分情况下,对一些特有的对象,可以使用特定的类来指向它: class Person:name unknownage -1sex 0partner No…

微信小程序三种授权登录以及授权登录流程讲解

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯&#x1f3a…

小县城蔬菜配送小程序制作全攻略

随着互联网的普及和人们对生活品质要求的提高,越来越多的小县城开始开发蔬菜配送小程序,以满足当地居民对新鲜蔬菜的需求。制作一个小县城蔬菜配送小程序,需要经过以下步骤: 步骤一:登录乔拓云平台 首先,打…

揭开 Amazon Bedrock 的神秘面纱 | 基础篇

在 2023 年 4 月,亚马逊云科技曾宣布将 Amazon Bedrock 纳入使用生成式人工智能进行构建的新工具集。Amazon Bedrock 是一项完全托管的服务,提供各种来自领先 AI 公司(包括 AI21 Labs、Anthropic、Cohere、Stability AI 和 Amazon 等&#xf…

【编解码格式】DivX系列、XviD

DivX DivX是DivX公司(前身是DivX Networks公司)的著名品牌,一种MPEG-4技术视频编解码器。该公司2007年秋以2200万美元收购德国Main Concept。 DivX将encore2的代码继续发展成DivX 4.0,于2001年7月推出。至于曾有份参与OpenDivX的…

Android音视频开发之基础知识

一、视频文件 1、视频格式 常见格式:mp4、mkv、flv 封装的数据:音频码流、视频码流 常用工具: [FFmpeg下载]:https://ffmpeg.org/download.html 下载、安装并配置环境变量 ffmpeg.exe 视频编解码 ffplay.exe 播放器库 ffprobe.exe 音视频分…

操作系统【OS】线程与进程的比较

进程 线程 是什么的单位? 是资源分配的基本单位 是调度的基本单位 不能共享什么? 不能共享虚拟地址空间 不能共享栈指针 可以共享什么? 拥有一个完整的资源平台 每个进程都有独立的地址空间和资源 除了共享全局变量,不允许其他进程访问 某进程中的线程…

git(部分)

1、git三个区域:工作区,暂存区,版本库 2、git文件状态:未跟踪,已跟踪(新添加,未修改,已修改) 如何查看暂存区和工作区文件状态:git status -s 3、查看版本记…

mysql MVC jsp实现表分页

mysql是轻量级数据库 在三层架构中实现简单的分页 在数据库sql编程中需要编写sql语句 SELECT * FROM sys.student limit 5,5; limit x,y x是开始节点,y是开始节点后的需要显示的长度。 在jdbc编程中需要给出x和y 一般是页数*页码,显示的长度。 代…

FreeRTOS最全教程(目录)

文章目录 前言一、为什么要学FreeRTOS二、FreeRTOS开发和裸机开发的区别三、FreeRTOS入门篇四、FreeRTOS深入篇五、自制FreeRTOS六、FreeRTOS项目开发总结 前言 本篇文章将作为FreeRTOS最全教程的目录使用。 一、为什么要学FreeRTOS 1.嵌入式系统开发: FreeRTOS …

【webpack】wabpack5 知识梳理

1、简单介绍 默认功能 可处理 js、json文件,处理 js 文件引入将其打包; 将es6的import规范编译为浏览器可识别的commonjs规范; 生产环境比开发环境打包多了代码丑化、压缩; 五大核心 入口(entry):指定打包入口&…

【(数据结构)—— 基于单链表实现通讯录】

(数据结构)—— 基于单链表实现通讯录 一.通讯录的功能介绍1.基于单链表实现通讯录(1). 知识要求(2). 功能要求 二.通讯录的代码实现1.通讯录的底层结构(单链表)(1).思路展示(2).底层代码实现(单链表)1.单链表头文件 —— (函数的定义&#x…

【分类讨论】CF1747D

Problem - D - Codeforces 题意 思路 一看这个做法一定就是分类讨论 先判无解 显然,如果区间异或和不是0一定无解 如果区间内全是0,答案一定是0 之后怎么讨论 注意到需要讨论区间长度 如果长度是奇数,那么直接操作即可,答…

【Overload游戏引擎细节分析】鼠标键盘控制摄像机原理

在上文中分析了摄像机类的实现,在计算投影视图矩阵时需要给摄像机输入其位置及转动四元数。这两个量一般通过鼠标键盘来控制,从而达到控制摄像机的目的。本文分析一下其控制原理。 Overload的摄像机控制实现在类CameraController中,其有三个个…

Top 10 数据恢复工具,可从iPhone 和 iPad 恢复数据

您是否正在寻找最好的 iPad 恢复软件,但不知道哪个选项最好?没有什么可担心的。本文将为您提供有关根据文件类型、设备兼容性和数据丢失原因等因素选择合适的 iPad 恢复软件的提示。此外,前 10 名提到的恢复软件是安全可靠的。 第 1 部分、iP…

ArmSoM-W3之RK3588硬编解码MPP环境配置

1. 简介 瑞芯微提供的媒体处理软件平台(Media Process Platform,简称 MPP)是适用于瑞芯微芯片系列的 通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理,其目的是为了屏蔽不 同芯片的差异,为使用者…

基于Java+Springboot+Vue前后端分离的商品库存销售管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 当今社会,…

Python--循环中的两大关键词 break 与 continue

在Python循环中,经常会遇到两个常见的关键词:break 与 continue break:代表终止整个循环结构 continue:代表中止当前本次循环,继续下一次循环 break: 英 /breɪk/ v. 打破,打碎&#xff0c…

看《软能力》的读后感

最近在图书大夏看了一本书的一部分,书名是《软能力》。本人看到了几个有意思的观点。一是接一些兼职项目。 二是分享自己的技术,让同事能干自己的工作,让自己的工作变得别人也能干,才有机会让自己的职位提升。 三是让手动操作变…