大数据处理与分析

news2024/11/15 15:47:26
  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.coloradmin.cn/o/1325077.html

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

相关文章

机器学习数据的清洗,转化,汇总及建模完整步骤(基于Titanic数据集)

目录 介绍&#xff1a; 一、数据 二、检查数据缺失 三、数据分析 四、数据清洗 五、数据类别转化 六、数据汇总和整理 七、建模 介绍&#xff1a; 线性回归是一种常用的机器学习方法&#xff0c;用于建立一个输入变量与输出变量之间线性关系的预测模型。线性回归的目标…

vs code创建工程,以koa框架为例

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「englyf」https://mp.weixin.qq.com/s/x2OXMTaLlxb_Os7NDHrKsg 这里以应用 koa 框架写一个 http 服务器为例&#xff0c;来说明怎么用 vs code 创建工程。 进入 vs code 后&#xff0c…

云服务器 nginx自启动、mysql自启动、pyhton后端自启动

nginx自启动 方法一&#xff1a; 1、建立启动文件 vim /usr/lib/systemd/system/nginx.service [Unit] Descriptionnginx - high performance web server Afternetwork.target remote-fs.target nss-lookup.target[Service] Typeforking ExecStart/usr/local/nginx/sbin/ng…

DMA实验3-外设到内存搬运

实验要求 使用 DMA 的方式将串口接收缓存寄存器的值搬运到内存中&#xff0c;同时闪烁 LED1 。 CubeMX 配置 DMA 配置&#xff1a; 串口中断配置 代码实现 如何判断串口接收是否完成&#xff1f;如何知道串口收到数据的长度&#xff1f; 使用串口空闲中断&#xff08;IDL…

2023优秀开源项目获选榜名单(开放原子开源基金会)|JeecgBoot 成功入选

JeecgBoot 是一个开源的企业级低代码开发平台&#xff0c;它成功入选2023年度生态开源项目&#xff0c;这是对其十年坚持开源的认可。作为一个开源项目&#xff0c;JeecgBoot 在过去的十年里一直秉承着开放、共享、协作的理念&#xff0c;不断推动着开源社区的发展。 2023年开放…

华为配置IPv4静态路由与静态BFD联动示例

组网需求 如图1所示&#xff0c;SwitchA通过SwitchB和NMS跨网段相连。在SwitchA上通过静态路由与NMS进行正常通信。在SwitchA和SwitchB之间实现毫秒级故障感知&#xff0c;提高收敛速度 配置思路 采用如下思路配置IPv4静态路由与静态BFD联动&#xff1a; 在SwitchA和SwitchB上…

LVS+keepalived小白都看得懂也不来看?

1 高可用集群 1.1 一个合格的集群应该具备的特性 1.负载均衡 LVS Nginx HAProxy F5 2.健康检查&#xff08;使得调度器检查节点状态是否可以正常运行&#xff0c;调度器&#xff08;负载均衡器&#xff09;也要做健康检查&#xff09;for调度器/节点服务器 keeplived hearb…

aws配置以及下载 spaceNet6 数据集

一&#xff1a;注册亚马逊账号 注册的时候&#xff0c;唯一需要注意的是信用卡绑定&#xff0c;这个可以去淘宝买&#xff0c;搜索aws匿名卡。 注册完记得点击登录&#xff0c;记录一下自己的账户ID哦&#xff01; 二&#xff1a;登录自己的aws账号 2.1 首先创建一个用户 首…

2023 英特尔On技术创新大会直播 |AI小模型更有性价比

前言&#xff1a; 今年是引爆AI的一年&#xff0c;从幼儿园的小朋友到80岁的老奶奶都认识AI&#xff0c;享受AI带来的便捷&#xff0c;都在向市场要智能&#xff0c;但AI的快速发展离不开底层硬件设施的革新。 英特尔是全球知名的半导体公司&#xff0c;专注于计算机处理器和芯…

FPGA模块——以太网芯片MDIO读写

FPGA模块——以太网MDIO读写 MDIO接口介绍MDIO接口代码&#xff08;1&#xff09;MDIO接口驱动代码&#xff08;2&#xff09;使用MDIO驱动的代码 MDIO接口介绍 MDIO是串行管理接口。MAC 和 PHY 芯片有一个配置接口&#xff0c;即 MDIO 接口&#xff0c;可以配置 PHY 芯片的工…

【实时绘画】krita + comfyUI 实时绘画 儿童海报

1&#xff1a;打开comfyUI 2: 打开krita 打开 cd custom_nodes 输入命令 安装控件 git clone https://github.com/Acly/comfyui-tooling-nodes.git

人工智能与底层架构:构建智能引擎的技术支柱

导言 人工智能与底层架构的交融塑造了智能系统的基石&#xff0c;是推动智能时代发展的关键动力&#xff0c;本文将深入研究人工智能在底层架构中的关键作用&#xff0c;以及它对智能引擎的技术支持&#xff0c;探讨人工智能在计算机底层架构中的作用&#xff0c;以及这一融合如…

第11章 《GUI》Page404 课堂作业,验证鼠标事件的坐标,GUI编程如何在控制台输出调试

首先选中工程&#xff0c;点击右键&#xff0c;选择Properties 在Build targets一栏里&#xff0c;将Type(下拉列表)改为Console application 然后在代码中写上调试输出语句&#xff0c;就可以了 从图中&#xff0c;我们可以看出&#xff0c;我们划线的起点非常接近窗口左上角(…

JWT身份验证

JWT知识点 jwt&#xff0c;全称 json web token, JSON Web 令牌是一种开放的行业标准 RFC 7519 方法&#xff0c;用于在两方之间安全地表示声明。 详情可以参考&#xff1a; hhttps://jwt.io/introduction 1. 数据结构 JSON Web Token由三部分组成&#xff0c;它们之间用圆点.进…

LLama Factory 安装部署实操记录(二)

1. 项目地址 GitHub - hiyouga/LLaMA-Factory: Easy-to-use LLM fine-tuning framework (LLaMA, BLOOM, Mistral, Baichuan, Qwen, ChatGLM)Easy-to-use LLM fine-tuning framework (LLaMA, BLOOM, Mistral, Baichuan, Qwen, ChatGLM) - GitHub - hiyouga/LLaMA-Factory: Easy…

javascript_0

Javascript是一种脚本语言&#xff0c;可以用来更改页面内容&#xff0c;控制多媒体&#xff0c;制作图像、动画等等 例 修改页面内容 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport…

LuaJava操作Java的方法

最近在学习lua&#xff0c;然后顺便看了下luaj&#xff0c;可能用的人比较少&#xff0c;网上关于luaj的文章较少&#xff0c;其中在网上找到这个博主的相关文章&#xff0c;很详细&#xff0c;对于要学习luaj的小伙伴可以两篇一起查看&#xff0c;本文在此基础上进行扩展。 …

DDPM详解

DDPM详解 参考 https://www.bilibili.com/video/BV1pa411u7G3/ 系列 DDPM 可以分为 Diffusion 和 Reverse 两个阶段。其中 Diffusion 阶段通过不断地对真实图片添加噪声&#xff0c;最终得到一张噪声图片。而 Reverse 阶段&#xff0c;模型需要学习预测出一张噪声图片中的噪声部…

LLM 和搜索引擎是一样的吗?

在这篇文章中&#xff0c;了解更多关于 AI 大型语言模型&#xff08;如 ChatGPT&#xff09;的潜力。了解他们如何彻底改变生产力&#xff0c;并探索他们与搜索引擎不断变化的关系。 像 ChatGPT 这样的 AI 大型语言模型 &#xff08;LLM&#xff09; 已经风靡全球&#xff0c;并…

【力扣】148.排序链表

148.排序链表 怎么说&#xff0c;这道题看上去挺简单的&#xff0c;但是要搞清楚的知识点那还真不少&#xff0c;刷题好痛苦&#xff0c;但是要刷&#xff01;嘿嘿~ 首先&#xff0c;要搞懂归并排序&#xff0c;然后是递归。这道题我刚开始想的是递归&#xff0c;但是题友说时…