【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)

MapReduce是Hadoop系统核心组件之一,它是一种可用于大数据并行处理的计算模型、框架和平台,主要解决海量数据的计算,是目前分布式计算模型中应用较为广泛的一种。

一、MapReduce核心思想

MapReduce的核心思想是“分而治之”。所谓“分而治之”就是把一个复杂的问题,按照一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的结果,把各部分的结果组成整个问题的结果,这种思想来源于日常生活与工作时的经验,同样也完全适合技术领域。任务分解的前提是这些任务没有必然的依赖关系,可以单独执行任务,将结果合并,即把任务划分中的各个子任务的结果进行全局汇总

MapReduce作为一种分布式计算模型,它主要用于解决海量数据的计算问题。使用MapReduce操作海量数据时,每个MapReduce程序被初始化为一个工作任务,每个工作任务可以分为Map和Reduce两个阶段。

构架方面:以统一构架位开发人员隐藏系统层细节,程序员只需要集中于应用问题和算法本身,而不需要关注其他系统层的处理细节,大大减轻了开发人员开发程序的负担

该框架可负责自动完成以下系统底层相关的处理

1:计算任务的自动划分和调度

2:数据的自动化分布存储和划分

3:处理数据与计算任务的同步

4:结果数据的收集整理

5:系统通信 负载平衡 计算性能优化处理

6:处理系统节点出错检测和失效恢复

MapReduce就是“任务的分解与结果的汇总”。即使用户不懂分布式计算框架的内部运行机制,但是只要能用Map和Reduce思想描述清楚要处理的问题,就能轻松地在Hadoop集群上实现分布式计算功能。

 

二、MapReduce编程模型 

MapReduce是一种编程模型,用于处理大规模数据集的并行运算。使用MapReduce执行计算任务的时候,每个任务的执行过程都会被分为两个阶段,分别是Map和Reduce,其中Map阶段用于对原始数据进行处理,Reduce阶段用于对Map阶段的结果进行汇总,得到最终结果。

三、MapReduce工作过程

包括输入和拆分-执行map-执行Shuffle过程-执行Reduce-写入文件 五个步骤

四、MapReduce编程组件 

MapReduce编程组件主要有以下六种

InputFormat组件:主要用于描述输入数据的格式,它提供两个功能,分别是数据切分和为Mapper提供输入数据。

Mapper组件:Hadoop提供的Mapper类是实现Map任务的一个抽象基类,该基类提供了一个map()方法。

OutputFormat组件:OutputFormat是一个用于描述MapReduce程序输出格式和规范的抽象类。

Reducer组件:Map过程输出的键值对,将由Reducer组件进行合并处理,最终的某种形式的结果输出。

Combiner组件:Combiner组件的作用就是对Map阶段的输出的重复数据先做一次合并计算,然后把新的(key,value)作为Reduce阶段的输入。

Partitioner组件:Partitioner组件可以让Map对Key进行分区,从而可以根据不同的key分发到不同的Reduce中去处理,其目的就是将key均匀分布在ReduceTask上

五、MapReduce工作原理

MapReduce作业的执行设计四个独立的实体

1:Jobclient:编写MapReduce客户端程序,配置作业和提交作业,是开发人员需要完成的工作

2:JobTracker:初始化作业,分配作业,与TaskTracker通信,协调整个作业的执行

3:TaskTracker:保持与JobTracker的通信,在分配的数据片段上执行Map或Reduce任务,TaskTracker与JobTracker的不同是在执行任务时TaskTracker可以有多个,JobTracker只会有一个

4:HDFS:保存作业的数据,配置信息等等,最后的结果也保存在HDFS上面

创作不易 觉得有帮助请点赞关注收藏~~~

 

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实战大数据(hadoop spark flink)pdf是指利用大数据处理技术(如HadoopSpark、Flink)进行实际的数据分析和应用开发,并以PDF格式进行文档化。 大数据处理技术的出现,使得企业和机构可以处理和分析海量的数据,从而发掘出更多有价值的信息和洞察。而HadoopSpark和Flink作为目前比较流行的大数据处理框架,具有各自的特点和适用场景。 首先,Hadoop是一个基于分布式文件系统的大数据处理框架,能够实现数据的存储和计算的分布式处理。它采用MapReduce计算模型,可以对大规模数据进行批处理,适用于离线的数据分析任务。因此,在实战大数据的PDF中,可以介绍如何使用Hadoop进行大数据的存储和离线计算,以及如何利用Hadoop的生态系统组件如Hive、HBase等进行数据处理和查询。 其次,Spark是一个内存计算框架,它具有很强的处理速度和灵活性。Spark提供了一系列的API,可以方便地处理和分析大规模数据,同时支持批处理和实时流处理,适用于交互式和实时的数据分析任务。在实战大数据的PDF中,可以介绍如何使用Spark进行数据的处理和分析,包括数据清洗、特征工程、机器学习等方面的实践。 最后,Flink是一个流式计算框架,它具有低延迟、高吞吐量和状态一致性等特点。Flink支持基于时间的窗口计算、迭代计算和状态管理等功能,适用于复杂的实时数据分析任务。在实战大数据的PDF中,可以介绍如何使用Flink进行实时数据处理和分析,包括窗口计算、流式机器学习等方面的实践。 总之,实战大数据(hadoop spark flink)pdf可以从不同维度和使用场景来介绍大数据处理技术的应用,帮助读者了解和掌握这些技术在实际项目中的使用方法和优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

showswoller

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值