IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 大数据之MapReduce框架(三) -> 正文阅读

[大数据]大数据之MapReduce框架(三)


前言

#博学谷IT学习技术支持#
上篇文章主要介绍了MapReduce的输入和输出以及流程介绍,MapReduce的整个流程大致分为Map阶段、Shuffle阶段和Reduce阶段,本次主要对Shuffle阶段做进一步的梳理。

一、Shuffle介绍

shuffle阶段是MapReduce中的一个重要环节,称为数据洗牌节点,MapReduce先经过Map数据拆分阶段,然后再经过shuffle数据清洗阶段,最后再由Redeuce阶段将清洗后的数据进行汇总,Shuffle阶段主要包括分区、排序、Combiner规约和分组。

二、Shuffle中各流程介绍

(一)自定义分区

  • 概述

    1、分区就是将一份数据根据一定的规则分到不同的文件中;
    2、分区的实现的方式为:在Map阶段对K2打标记,标记相同的数据分到同一个区;
    3、如果设置了分区则会有多个文件输出,一个Reduce输出一份文件,相同标记的K2会被同一个Reduce读取,输出到同一份文件中,多个Reduce则会生成多份文件;
    4、Partition分区就是在Map结束之后,根据Key值不同,给每个Key打上标签,每个Reduce再分别处理不同标签的Key值
    在这里插入图片描述

(二)自定义排序

  • 概述
    1、MapReduce中只能根据K2进行排序
    2、如果想按照某个字段排序,则应该把这个字段包含在K2中
    3、可以自定义Java类进行排序

  • 注意要点
    1、如果在MapReduce中自定义Java类,则MapReduce对该类有以下要求
    1)自定义类必须能够被序列化 ,即需要实现Writable接口
    2) 如果该类作为K2,则要求该类必须指定排序规则,即需要实现WritableComparable接口

(三)Combiner规约

  • 概述
    1、Combiner规约是MapReduce中的优化手段,将每一个Map阶段的数据进行提前聚合,减少Map端和Reduce端网络传输的数据量
    2、规约相当于为将Reduce的逻辑在Map端先执行一遍
    3、Reduce是对所有的Map后的数据进行汇总,而规约是对每一个Map的数据进行汇总
    4、Combiner规约只是一种优化手段,不能改变最终的执行结果
    在这里插入图片描述

(四)自定义分组

  • 概述
    1、分组的作用就是将K2进行去重,然后相同K2的V2存入集合
    2、MapReduce默认的分组是根据K2来决定的,相同K2的数据会被分到同一组
    3、当默认的分组,不满足我们的需求时,我们可以使用自定义分组
    4、当我们没有指定分组规则时,系统默认调用K2类中的compareTo方法,如果我们自定义了规则,则按照我们的方式来实现分组

总结

MapRedeuce最主要的流程是Map阶段和Reduce阶段,shuffle阶段都有默认执行逻辑,倘若shuffle阶段的默认逻辑无法满足当前需求,则可以对shuffle阶段的分区、排序、combiner规约和分组进行自定义设定,从而达到效果。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:41:07  更:2022-10-17 12:41:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 -2025/5/1 10:12:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码