Hadoop -04 MapReduce介绍

本文介绍了Hadoop的MapReduce模型,包括Map和Reduce任务的职责、数据处理过程和MapReduce的主要优点。Map阶段负责处理输入数据,Reduce阶段进行数据合并。此外,讨论了读取数据、Mapper、Shuffle阶段以及Hadoop的IO特性,强调了数据完整性的重要性。
摘要由CSDN通过智能技术生成

Hadoop-MapReduce

MapReduce是一个框架,我们可以使用它来编写应用程序,以可靠的方式并行地处理大量商品硬件群集上的大量数据。

什么是MapReduce?

MapReduce是一种基于java的分布式计算的处理技术和程序模型。 MapReduce算法包含两个重要任务,即Map和Reduce。Map采用一组数据并将其转换为另一组数据,其中各个元素被分解为元组(键/值对)。其次,reduce任务,它将map的输出作为输入,并将这些数据元组合并成一组较小的元组。作为MapReduce名称的顺序,reduce任务总是在map作业之后执行。

MapReduce的主要优点是易于在多个计算节点上扩展数据处理。在MapReduce模型下,数据处理原语称为映射器和缩减器。将数据处理应用程序分解为映射器和简化器有时并不重要。但是,一旦我们以MapReduce形式编写应用程序,扩展应用程序以在集群中运行数百,数千甚至数万台机器只是一种配置更改。这种简单的可扩展性是吸引许多程序员使用MapReduce模型的原因。

算法

  • 通常MapReduce范例是基于将计算机发送到数据所在的位置!

  • MapReduce程序在三个阶段执行,即map阶段,shuffle阶段和reduce阶段。

    • Map 阶段 :

      映射或映射器的作业是处理输入数据。一般来说,输入数据是以文件或目录的形式存储在Hadoop文件系统(HDFS)中。输入文件逐行传递到映射器函数。映射器处理数据并创建几个小块的数据。

    • Reduce 阶段 :

      这个阶段是Shuffle阶段和Reduce阶段的组合。 Reducer的工作是处理来自映射器的数据。处理后,它产生一组新的输出,将存储在HDFS中。

  • 在MapReduce作业期间,Hadoop将Map和Reduce任务发送到集群中的相应服务器。

  • 该框架管理数据传递的所有细节,例如发出任务,验证任务完成,以及在节点之间复制集群周围的数据。

  • 大多数计算发生在节点上,本地磁盘上的数据减少了网络流量。

  • 完成给定任务后,集群收集并减少数据以形成适当的结果,并将其发送回Hadoop服务器。

术语

  • PayLoad:应用程序实现Map和Reduce功能,并形成作业的核心。
  • Mapper: 映射器将输入键/值对映射到一组中间键/值对。
  • NamedNode :管理Hadoop分布式文件系统(HDFS)的节点。
  • DataNode :在任何处理发生之前提前呈现数据的节点。
  • MasterNode : JobTracker运行并接受来自客户端的作业请求的节​​点。
  • SlaveNode : Map和Reduce程序运行的节点。
  • JobTracker :计划作业并跟踪将作业分配给任务跟踪器。
  • Task Tracker : 跟踪任务并向JobTracker报告状态。
  • Job :程序是跨数据集的Mapper和Reducer的执行。
  • Task :在一个数据片段上执行Mapper或Reducer。
  • Task Attempt :尝试在SlaveNode上执行任务的特定实例。
    在这里插入图片描述

MapReduce - 读取数据

通过InputFormat决定读取的数据的类型,然后拆分成一个个InputSplit,每个InputSplit对应一个Map处理,RecordReader读取InputSplit的内容给Map

  • InputFormat

决定读取数据的格式,可以是文件或数据库等

功能

  1. 验证作业输入的正确性,如格式等
  2. 将输入文件切割成逻辑分片(InputSplit),一个InputSplit将会被分配给一个独立的Map任务
  3. 提供RecordReader实现,读取InputSplit中的"K-V对"供Mapper使用

方法
List getSplits(): 获取由输入文件计算出输入分片(InputSplit),解决数据或文件分割成片问题

RecordReader createRecordReader(): 创建RecordReader,从InputSplit中读取数据,解决读取分片中数据问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值