大数据处理与分析

  1. 掌握分布式并行编程框架MapReduce
  2. 掌握基于内存的分布式计算框架Spark
  3. 理解MapReduce的工作流程、Spark运行原理
  4. 熟悉机器学习概念

一.MapReduce

 Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。这个定义里面有着这些关键词,一是软件框架,二是并行处理,三是可靠且容错,四是大规模集群,五是海量数据集

因此,对于MapReduce,可以简洁地认为,它是一个软件框架,海量数据是它的“菜”,它在大规模集群上以一种可靠且容错的方式并行地“烹饪这道菜”。

1. MapReduce做什么(分散任务,汇总结果!)

2.MapReduce模型简介

MapReduce核心函数:

MapReduce之策略:

MapReduce之理念:

计算向数据靠拢而不是数据向计算靠拢

要完成一次数据分析时,选择一个计算节点,把运行数据分析的程序放在计算节点上运行

然后把它所涉及的数据,全部从各个不同节点上面拉过来,传输到计算发生的地方

二.MapReduce之Map函数和Reduce函数

Map函数

Reduce函数

三.MapReduce的工作流程

1.工作流程

2.各个执行的阶段

1.从HDFS里加载文件读取文件-(IputFormat)对输入进行格式验证,然后,将输入文件切分为逻辑上的多个(IputSplit)实际是逻辑切分概念,只是记录了要处理的数据的位置和长度。

2.RR根据InputSplit中的信息来处理InputSplit中的具体记录,加载数据并转换为适合Map任务读取的键值对,输入给Map任务。

3.中间结果shuffle(洗牌),分区,排序,合并,归并,从无序<key,value>到有序的<key,value-list>

4.Reduce 执行用户定义的逻辑,输出结果给到OutputFormat模块

5.OutputFormat模块会验证输出目录是否已经存在以及输出结果类型是否符合配置文件中的配置类型,如果都满足,就输出Reduce的结果到分布式文件系统(如HDFS)。

3.MapReduce核心环节-Shuffle过程

所谓Shuffle,是指对Map输出结果进行分区、排序、合并等处理并交给Reduce的过程。因此,Shuffle过程分为Map端的操作和Reduce端的操作,主要执行以下操作。

Map端的Shuffle过程

a输入数据和执行Map任务

b写入缓存

c溢写(分区,排序和合并)

d文件归并

Reduce端的Shufflu过程
  • Reduce任务通过RPC向JobTracker询问Map任务是否已经完成,若完成,则领取数据
  • Reduce领取数据先放入缓存,来自不同Map机器,先归并,再合并,写入磁盘
  • 多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的
  • 当数据很少时,不需要溢写到磁盘,直接在缓存中归并,然后输出给Reduce

MapReduce应用程序执行过程

四.实例分析:WordCount

  1. WordCount程序任务
  2. WordCount设计思路
  3. 一个WordCount执行过程的实例

4.1WordCount程序任务

一个WordCount程序任务

4.2WordCount设计思路

首先,需要检查WordCount程序任务是否可以采用MapReduce来实现
其次,确定MapReduce程序的设计思路
最后,确定MapReduce程序的执行过程

4.3一个WordCount执行过程的实例

Map过程示意图

用户没有定义Combiner时的Reduce过程示意图

用户定义Combiner时的Reduce过程示意图

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

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

相关文章

防火墙-iptables详解

前言&#xff1a;最近的工作中&#xff0c;需要对防火墙进行配置&#xff0c;但是很多地方都是老机器&#xff0c;有的用iptables&#xff0c;有的用firewalld&#xff0c;我写下这篇文章&#xff0c;彻底地了解这两个应用软件的使用方法。在以后的工作中&#xff0c;相信很多人…

语音识别之百度语音试用和OpenAiGPT开源Whisper使用

0.前言: 本文作者亲自使用了百度云语音识别,腾讯云,java的SpeechRecognition语言识别包 和OpenAI近期免费开源的语言识别Whisper(真香警告)介绍了常见的语言识别实现原理 1.NLP 自然语言处理(人类语言处理) 你好不同人说出来是不同的信号表示 单位k 16k16000个数字表示 1秒160…

Springboot数据校验与异常篇

一、异常处理 1.1Http状态码 HTTP状态码是指在HTTP通信过程中&#xff0c;服务器向客户端返回的响应状态。它通过3位数字构成&#xff0c;第一个数字定义了响应的类别&#xff0c;后两位数字没有具体分类作用。以下是常见的HTTP状态码及其含义&#xff1a; - 1xx&#xff08;信…

2023年中国数据智能管理峰会(DAMS上海站2023)-核心PPT资料下载

一、峰会简介 数据已经成为企业的核心竞争力&#xff01;谁掌控数据、更好的利用数据、实现资产化&#xff0c;谁就会真正率先进入大数据时代。 1、数据智能管理趋势和挑战 在峰会上&#xff0c;与会者讨论了数据智能管理的最新趋势和挑战。随着数据量的不断增加&#xff0c…

【强化学习】Deep Q Learning

Deep Q Learning 在前两篇文章中&#xff0c;我们发现RL模型的目标是基于观察空间 (observations) 和最大化奖励和 (maximumize sum rewards) 的。 如果我们能够拟合出一个函数 (function) 来解决上述问题&#xff0c;那就可以避免存储一个 (在Double Q-Learning中甚至是两个…

基于python的图表生成系统,python导入数据生成图表

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;用python将excel的内容生成图像&#xff0c;python画的图表如何导入word&#xff0c;现在让我们一起来看看吧&#xff01; 今天的主题是 Excel&#xff0c;相信大家都比较熟悉吧。而且我相信&#xff0c;大家在日常使用…

计算机组件操作系统BIOS的相关知识思维导图

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、运维实施工程师需要具备的知识 1、运维工程师、实施工程师是啥&#xff1f; 2、运维工程师、实施工…

3.基本数据类型

3.基本数据类型 int整型 作用:用来记录人的年龄&#xff0c;出生年份&#xff0c;学生人数等整数相关的状态 定义:age18 birthday1990 student_count48 float浮点型 作用&#xff1a;用来记录人的身高&#xff0c;体重&#xff0c;薪资等小数相关的状态 定义:height172.3 w…

el-select 全选

<template><div class"container"><el-selectv-model"choosedList"clearablemultiplecollapse-tagsplaceholder"请选择"change"select_Change"><div style"padding: 0 20px; line-height: 34px">&l…

【离散数学】——期末刷题题库(树其二)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

MyBatis-Plus(一):根据指定字段更新或插入

根据指定字段更新或插入 1、概述2、实现方式2、总结 1、概述 MyBatis-Plus中提供了一个saveOrUpdate()方法&#xff0c;默认情况下可以根据主键是否存在进行更新或插入操作&#xff0c;但是实际场景中&#xff0c;根据指定字段进行更新或插入的情况也非常多见&#xff0c;今天…

计算机组成原理(复习题)

更多复习详情请见屌丝笔记 一、选择题 计算机系统概述 1、至今为止&#xff0c;计算机中的所有信息仍以二进制方式表示的理由是&#xff08; C &#xff09;。 A.运算速度快 B.信息处理方便 C.物理器件性能所致 D.节约元件 2、运算器的核心功能部件是&#xff08; D &am…