MAP REDUCE

在这里插入图片描述

大数据处理框架概念

  • 定义:由一系列组件构成,负责对数据系统中的数据进行计算。
  • 组件
    • 处理引擎:实际执行数据操作的独立组件。
    • 处理框架:包含多个协同工作的组件。

框架与引擎的区别

  • 引擎:单一的,专门执行任务。
  • 框架:由多个引擎和辅助组件组成,提供更广泛的功能。

框架示例

  • Apache Hadoop:以MapReduce作为默认处理引擎的框架。
  • Apache Spark:可以整合进Hadoop,取代MapReduce的框架。

互操作性

  • 引擎和框架:可以相互替换或同时使用,增加了系统的灵活性。

目标

  • 提高理解能力:通过对数据执行操作来增强对数据的理解。
  • 揭示模式:发现数据中蕴含的模式。
  • 获得见解:针对复杂互动提供深刻的洞察。

数据处理分类

  • 批处理:处理静态的、存储在系统中的数据集。
  • 流处理:处理实时生成并流入系统的数据流。
  • 混合处理:一些系统能够同时处理批数据和流数据。

大数据计算框架

在这里插入图片描述

批处理系统特点

操作对象大容量静态数据集

  • 计算方式:计算完成后返回结果。
  • 数据特征
    • 有界:处理有限的数据集合。
    • 持久:数据存储在持久化介质。
    • 大量:适合处理大规模数据集。

批处理适用性

  • 计算需求:需要访问全套记录的计算工作。
  • 实例:计算总数和平均数,要求数据集整体处理。
  • 状态维持:计算过程中数据需保持状态。

批处理系统设计

  • 处理资源:需要处理大量数据的任务通常最适合用批处理操作进行处理。无论直接从持久存储设备处理数据集,或先将数据集载入内存,批处理系统在设计过程中就充分考虑了数据的量,可提供充足的处理资源。由于批处理在应对大量持久数据方面的表现极为出色,因此经常被用于对历史数据进行分析
  • 适用场景:常用于历史数据分析。
  • 局限性:大量数据的处理需要付出大量时间,因此批处理不适合对处
    理时间要求较高
    的场合。

MapReduce框架

  • 功能:按特征归并杂乱数据,处理得到结果。
  • 复杂问题:通过多个MapReduce组合表达复杂计算问题。
  • 设计:组合过程需人工设计,比较麻烦。另外,每个阶段都需要所有的计算机同步,影响了执
    行效率。

DAG计算模型

  • 定义:有向无环图,核心思想是把任务在内部分解为若干存在先后顺序的子任务。
  • 灵活性:更灵活地表达复杂依赖关系。
  • 模型示例
    • Microsoft Dryad
    • Google FlumeJava
    • Apache Tez

Dryad定义了串接、全连接、融合等若干简单的DAG模型,通过组合这些简单结构来描述复杂的任务,FlumeJava、Tez则通过组合若干MapReduce形成DAG任务。

MapReduce的另一个不足之处是使用磁盘存储中间结果,严重影响了系统的性能。Spark对早期的DAG模型作了改进,提出了基于内存的分布式存储抽象模型RDD,把中间数据有选择地加载并驻留到内存中,减少磁盘IO开销。

流处理系统基础

  • 定义:实时处理动态产生数据的系统。
  • 目的:快速处理数据,适用于大数据时代。

流处理系统的必要性

  • 实时需求:数据迅速处理,响应时间短。
  • 容错性:系统稳定,处理数据时避免遗漏或重复。
  • 拥塞控制:有效管理数据流,防止系统过载。

流处理系统操作特点

  • 即时计算:对流入系统的每个数据项进行实时处理。
  • 无边界数据集:数据持续到达,没有固定结束点。

流处理的影响

  • 数据集理解
    • 完整数据集:代表已处理的数据总量。
    • 工作数据集:特定时间点,只关注单个数据项。
  • 事件驱动:处理基于数据到达的事件,持续进行。
  • 结果更新:处理结果随新数据到来而实时更新。

流处理系统能力

流处理系统可以处理几乎无限量的数据,但同一时间只能处理一条(真正的流处理)或很少量(微批处理,Micro-batch Processing)数据,不同记录间只维持最少量的状态

交互式分析框架概述

  • 需求背景:在大数据存储和计算基础上,提供数据分析便利。
  • 核心优势:交互式查询,提高数据分析效率。

交互式分析技术发展

  • 快速发展:近年来,交互式分析技术迅速进步。
  • 多样化平台:出现多个知名交互式分析平台。

主要交互式分析平台

  • Google Dremel:快速处理大规模数据,3秒内处理1PB数据。
  • PowerDrill:Google开发的高效数据分析工具。
  • Presto:Facebook开发,适用于多种数据源的交互式查询。
  • Impala:Cloudera开发,提供Hadoop的SQL查询。
  • Stinger:HortonWorks开发,提高Hive的交互式查询性能。
  • Apache项目:包括Hive、Drill、Tajo、Kylin、MRQL等。

交互式分析特点

  • 处理速度:快速分析海量数据,兼顾速度和精度。
  • 用户体验:提供便利的数据分析方式,提高工作效率。

增量计算框架

  • 定义:仅对部分新增或更新数据进行计算,提升效率。
  • 应用场景:数据增量更新或周期性更新。
  • 代表框架
    • Google Percolator
    • Microsoft Kineograph
    • 阿里 Galaxy

高性能事务处理框架

  • Apache Ignite:提供高性能的事务处理能力。
  • Apache Geode:GemFire的开源版本,适用于分布式数据管理。

图计算框架

  • 模型:基于图论的迭代式计算模型。
  • 应用:PageRank计算、社交网络分析、推荐系统、机器学习。
  • 代表框架
    • Google Pregel
    • Apache Giraph
    • Apache Hama
    • PowerGraph(领域杰出代表)

以下是对MapReduce基本设计思想的总结:

MapReduce设计思想总结(概述)

分而治之策略

  • 核心理念: MapReduce采用分而治之的方法,将大数据集分解成独立、可并行处理的数据块。
  • 独立性: 数据块之间无依赖关系,允许同时进行计算,提高处理速度。

数据分片与并行处理

  • 数据划分: 将大数据集逻辑上划分为多个数据分片。
  • 节点分配: 每个数据分片由集群中的不同节点负责处理。
  • 汇总结果: 所有节点处理完成后,汇总各节点的计算结果。
MapReduce抽象模型
  • Map函数: 对每个数据分片执行的函数,生成中间键值对。
  • Reduce函数: 根据Map函数的输出,对具有相同键的值进行汇总。
编程接口
  • 简化开发: 程序员仅需实现Map和Reduce两个接口。
  • 灵活性: 通过这两个接口,MapReduce可以应用于多种数据处理场景。
顺序数据的处理
  • 设计目标: 针对顺序组织的数据元素或记录设计。
  • 实际应用: 适用于处理重复性数据,如Web访问日志。
处理流程
  1. 数据切分: 将数据集切分为多个数据块。
  2. Map操作: 对每个数据块应用Map函数。
  3. Shuffle过程: 对Map的输出进行排序和分组。
  4. Reduce操作: 对每个键的值进行汇总,生成最终结果。

== MapReduce主要功能==

数据划分与任务调度
  • 自动化: 系统自动将大数据集划分为多个数据块,每个块对应一个任务。
  • 资源分配: 计算节点(Map和Reduce节点)被自动分配任务。
  • 监控与同步: 监控节点状态,同步Map任务执行。
数据/代码互定位
  • 本地化原则: 优先在数据所在节点处理数据,减少通信开销。
  • 代码迁移: 当本地化不可能时,数据通过网络发送到计算节点。
  • 延迟减少: 尽可能在数据所在机架上找到可用节点。
系统优化
  • 中间结果合并: 减少数据传输,提高效率。
  • 数据相关性: 确保相关数据发送到同一Reduce节点。
  • 性能优化: 对慢任务采用多备份执行,选择最快结果。
出错检测与恢复
  • 常态处理: 硬件和软件错误视为常态。
  • 错误隔离: 检测并隔离出错节点。
  • 任务接管: 调度新节点接管计算任务。
  • 数据可靠性: 多备份机制,及时恢复出错数据。

MapReduce框架组成

1. Client(客户端)
  • 角色: 用户接口,提交作业到系统。
  • 功能: 打包应用程序和配置成Jar文件。
  • 操作: 将Jar上传到HDFS,提交作业路径给JobTracker。
2. JobTracker(作业跟踪器)
  • 角色: 集群管理中枢,负责资源监控和作业调度。
  • 功能:
    • 监控TaskTracker和作业状态。
    • 任务失败时重新分配。
    • 跟踪执行进度和资源使用。
    • 与任务调度器协作。
3. TaskTracker(任务跟踪器)
  • 角色: 集群中的工作节点。
  • 功能: 执行来自JobTracker的任务。
  • 通信: 通过心跳与JobTracker保持通信。
  • 操作: 汇报资源使用和任务进度,响应JobTracker命令。
4. Task(任务)
  • 类型: MapTask和ReduceTask。
  • 启动: 由TaskTracker根据split信息启动。
  • 处理单位: Split,包含数据的元数据信息。

核心概念

  • Split: MapReduce的处理单元,由用户定义,决定MapTask数量。
  • HDFS Block: HDFS的数据存储单元。

作业执行流程

  1. 客户端提交: 用户通过Client提交作业。
  2. Jar上传: 应用程序和配置信息上传到HDFS。
  3. JobTracker调度: 分配任务到TaskTracker。
  4. TaskTracker执行: 根据split执行MapTask和ReduceTask。
    在这里插入图片描述

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

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

相关文章

NV-Embed论文阅读笔记

这是NVIDIA的一篇论文,LLM通常使用的是GPT的decoder范式作为一个生成模型,文章探讨如何利用这样的decoder生成模型来实现BERT这样的encoder的功能,即提取有效的embedding。现有的方法提取embedding的方式无非是 1 mean pooling; 2…

计算机相关专业是否仍是“万金油”的选择?

亲爱的朋友们: 2024 年高考已然落幕,数百万高三学子站在了人生的重要十字路口,面临着选择大学专业这一关键抉择。在这个节点上,计算机相关专业是否还能被称为“万金油”的选择呢? 相信大家都知道,在最近这几…

经典神经网络(11)VQ-VAE模型及其在MNIST数据集上的应用

经典神经网络(11)VQ-VAE模型及其在MNIST数据集上的应用 我们之前已经了解了PixelCNN模型。 经典神经网络(10)PixelCNN模型、Gated PixelCNN模型及其在MNIST数据集上的应用 今天,我们了解下DeepMind在2017年提出的一种基于离散隐变量(Discrete Latent va…

celery骚操作之把任务写在类中可能造成的问题

celery注册异步函数是模块级别的,也就是同个模块不能有同名函数,比如搞个骚操作,将celery任务写在类中如下(注意这个静态方法是个特殊的装饰器,他实际是个描述器,他必须写在最上面) 实际注册的任务是apps.business.tas…

3D视觉引导机器人提升生产线的自动化水平和智能化程度

随着智能化技术的不断发展,汽车制造企业正积极寻求提升智能化水平的途径。富唯智能的3D视觉引导机器人抓取技术为汽车制造企业提供了一种高效、智能的自动化解决方案。 项目目标 某汽车制造企业希望通过引入智能化技术提升生产线的自动化水平和智能化程度。他们希望…

python错题(3)

round四舍五入 title()把单词首字母大写 all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。 元素除了是 0、空、None、False 外都算 True 。空元组、空列表返回值为True,这里要特…

2023数A题——WLAN网络信道接入机制建模

A题——WLAN网络信道接入机制建模 思路:该题主要考察的WLAN下退避机制建模仿真。 资料获取 问题1: 假设AP发送包的载荷长度为1500Bytes(1Bytes 8bits),PHY头时长为13.6μs,MAC头为30Bytes,MA…

是否可以外链代发?

当然是可以的,代发外链是一种有效的提升网站SEO排名和流量的方法。通过在高质量的网站上发布包含你网站链接的内容,可以提高你网站的权重和可信度。而在所有代发外链的方式中,GPB外链无疑是最好的选择。 GPB外链,每一条GPB外链都是…

【UE4】角色御剑飞行的蓝图实现

沉沉更鼓急,渐渐人声绝 吹灯窗更明,月照一天雪 UE4简单的实现御剑飞行的功能 契子✨ 所谓的御剑飞行的原理就跟 《御板》 飞行的原理差不多,不过是在人物脚上插把剑在飞行的时候显示出来罢了。简单来讲就是只要渲染做的足够牛,土鸡…

App上架和推广前的准备

众所周知,App推广的第一步是上架各大应用下载市场,然后才是其他推广渠道。所以本文主要分两部分,第一部分主要介绍的是上架各大应用市场方面的准备,第二部分主要介绍的是其他渠道推广方面的准备。 一、App上架前的准备 1.1 上架…

Servlet基础(续集2)

HttpServletResponse web服务器接收到客户端的http的请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse 如果要获取客户端请求过来的参数:找HttpServletRequest如果要给客户端…

【前端面试】二叉树递归模板和题解

递归模板和步骤 递归题目的通用步骤递归模板总结1. 树的遍历(DFS)2. 二叉树的最大深度3. 二叉树的最近公共祖先 递归题目的记忆技巧 递归题目的通用步骤 明确递归函数的功能:确定递归函数的输入参数和返回值,明确函数的功能。基准…

如何在本地部署ChatTTS? 完美部署 简单几步 cpu gpu cuda

前言 最近,24-05-27号,github上出现了一个新项目,ChatTTS。该项目提供了一个文本转语音(Text To Speech)的开源方案,同时支持中文和英文。在官网的演示视频中,可以看到合成效果高度接近真人。 到目前(06-04)为止,已经有18.3k的star。 那我们就来看看这个模型的基本…

63、上海大学:MSConvNet-多尺度卷积神经网络解码大鼠运动疲劳数据[攒劲的模型来喽]

1、介绍&#xff1a; 文章&#xff1a;<A multiscale convolutional neural network based on time-frequency features for decoding rat exercise fatigue LFP >&#xff0c;本文由上海大学于2024.4.8日发表于<Biomedical Signal Processing and Control >&…

语音翻译软件app排名来啦,这些工具让旅游畅通无阻

#这个夏天我们一定要去看海# 出国旅行时&#xff0c;语言障碍常常是最让人头疼的问题之一。 特别是在像缅甸这样英语并不普及的国家&#xff0c;基本的日常交流&#xff0c;比如用餐或问路&#xff0c;都可能成为难题。 然而&#xff0c;随着技术的进步&#xff0c;现在有了…

全功能知识付费小程序源码系统 界面支持万能DIY装修 带完整的安装代码包以及搭建部署教程

系统概述 在当今数字化时代&#xff0c;知识付费已经成为一种重要的商业模式。为了满足市场对于便捷、高效、个性化的知识付费解决方案的需求&#xff0c;小编给大家分享一款全功能知识付费小程序源码系统。这一系统不仅具备界面支持万能 DIY 装修的独特优势&#xff0c;还配备…

游戏开发丨基于PyGame的消消乐小游戏

文章目录 写在前面PyGame消消乐注意事项系列文章写在后面 写在前面 本期内容&#xff1a;基于pygame实现喜羊羊与灰太狼版消消乐小游戏 下载地址&#xff1a;https://download.csdn.net/download/m0_68111267/88700193 实验环境 python3.11及以上pycharmpygame 安装pygame…

Cocos2dlua棋牌Lua解密

点击上方↑↑↑蓝字[协议分析与还原]关注我们 “ 介绍使用libcocos2dlua.so库的游戏的解密分析方法。” Cocos2dlua是一款流行的游戏引擎&#xff0c;常用于开发棋牌游戏。为了保护游戏代码&#xff0c;Cocos2dlua通常会对游戏脚本lua文件进行加密&#xff0c;生成Luac文件&…

电脑已删除的文件在回收站找不到怎么办?数据恢复办法分享!

电脑中的数据已经成为了我们生活和工作的重要部分。无论是珍贵的照片、重要的文档&#xff0c;还是日常的工作文件&#xff0c;我们都希望能够妥善保存很久。 然而&#xff0c;误删除文件的情况时有发生&#xff0c;而当我们急切地打开回收站试图找回这些文件时&#xff0c;却…

这些已经死去的软件,依旧无可替代

互联网这条长河里&#xff0c;软件们就像流星一样&#xff0c;一闪而过。有的软件火过一段时间&#xff0c;然后就慢慢消失了。 说不定有些软件你以前天天用&#xff0c;但不知道从什么时候开始就不再用了。时间一天天过去&#xff0c;我们的热情、记忆都在消退&#xff0c;还…