美文网首页IT在线课程
了解大数据(2)MapReduce

了解大数据(2)MapReduce

作者: employeeeee | 来源:发表于2018-11-03 11:11 被阅读144次

MapReduce设计思想

书中对MapReduce思想的解读感觉非常的好理解,假如说现在我们要处理的数据是一副扑克牌,你不知道扑克牌中是不是有54张,(在这里我们把MapReduce简化为两个讲点函数 Mapping 和 Reducing)
就需要对这副扑克牌进行处理,

  • 映射(Mapping):对集合里的每一个目标应用同一个操作,把扑克牌数一遍,分别映射到红桃 黑桃 方块 梅花中,经过Mapping之后 会输出一个Key/Value的值, 例如红桃:4张 黑桃:6张等.
  • 化简(Reducing): 相当于遍历集合中的元素返回一个汇总的结果,来计算是否为54张,这里是按照相同的key进行汇总 即黑桃:xx张;红桃:xx张 黑桃和红桃在这里就充当了Key

那么在这样的一个处理方法中 就涉及到了 三个精华思想

  1. 并行化 并行化分为空间和时间的并行化,时间并行化就是流水线的一个技术,空间上的并行化 就是指多台处理器来对数据进行处理的技术
image.png

在进入Reduce之前,必须要等到所有的map函数执行完,因此在进入reduce之前需要一个同步障(Barrier)

  1. 抽象化
    这个地方我理解也不是很好 大概就是一组数据会被中间值接受 再对key值相同的数据进行一个汇总,输出的就是一组符合这个key的数据.

  2. 结构统一 隐藏细节
    MapReduce统一架构,为程序员隐藏系统层细节.在之前的并发计算方法中,需要考虑到数据存储 划分 分发 结果收集 错误恢复等诸多细节.MapReduce提供一个比较统一的计算框架 可完成计算任务的划分和调度.数据的分布存储和划分 处理数据与计算任务的同步 结果数据的收集整理 系统通信 负载平衡 计算性能优化处理 处理系统节点出错检测和失效恢复.

MapReduce的组成

  1. 客户端
    提交MapReduce应用程序 每一个job都会在客户端通过JobClient类将应用程序配置参数 Configuration 打包成JAR包 存储到HDFS上
  2. JobTracker
    协调作业的运行,JobTracker实际上是一个java应用程序,它的主类是JobTraker.其主要负责的事情包括:与客户端通信,接受客户端的命令,接受TaskTracker心跳(分配Task任务列表 ,更新Task状态,以及检测状态) 内部处理操作,按照调度算法对job进行排列.
  3. TaskTracker
    周期性的向JobTracker发送心跳报告,在RPC调用返回结果后,解析结果得到 JobTracker下发的运行Task的指令.就会在TaskTracker节点上 准备运行这个Task,Task的运行是在一个与TaskTracker进程隔离的JVM中执行的.
  4. 文件系统
    一般情况下 文件采用HDFS 它是在其他实体之间共享作业和文件系统

MapReduce 作业运行流程

Hadoop 运行MapReduce作业的步骤主要包括:提交作业,初始化作业,分配任务,执行任务,更新进度和状态,完成作业,

  1. 命令行提交
    用户使用Hadoop命令运行脚本提交MapReduce程序到集群,会调用到JobClient.runJob()方法开始提交,最终则通过Job对象内部的JobClient对象的submitJobInternal()方法提交作业到JobTracker.
  2. 作业上传
    在提交作业到JobTracker之前还需要完成相关初始化工作,这些工作包括:获取用户作业的jobId,创建HDFS目录,上传作业 相关依赖库 分发所需文件到HDFS上 以及用户输入数据的所有分片信息等 这些上传是不需要用户直接干涉的
  3. 产生切分文件
    作业提交后 jobCilent调用InputFormt中的getSplits()方法产生用户数据的split分片信息,切片默认大小和HDFS的块大小相同(64MB),有利于Map任务的本地化执行,无需通过网络传递数据,
  4. 提交作业到JobTracker
    JobClient 通过远程过程调用协议(RPC)将作业提交到JobTracker作业调度器中,首先作为作业创建对象JobInProgress对象.JobTracker会为用户提交的每一个作业创建一个对象,对象维护作业运行时的信息,跟踪运行作业的状态和进度.检查用户是否有指定队列的作业提交权限.

相关文章

  • 了解大数据(2)MapReduce

    MapReduce设计思想 书中对MapReduce思想的解读感觉非常的好理解,假如说现在我们要处理的数据是一副扑...

  • 数据仓库工具Hive

    数据仓库工具Hive Hive产生背景 直接使用MapReduce处理大数据,问题: MapReduce开放难度大...

  • MapReduce(1)简要介绍

    ##08.13 1、mapreduce 本质上是并行运行,优势在于处理大规模数据集 2、MapReduce 将输入...

  • Hive

    HadoopHDFS 存储数据YARN 资源管理MapReduce 处理数据Mapreduce is hard...

  • Hadoop 【基础】| MapReduce简介

    MapReduce,并行计算框架,用于处理大规模的数据集 一、MapReduce原理 采用分而治之的思想,将一个大...

  • MapReduce入门

    MapReduce 1.x架构、MapReduce2.x架构 MapReduce1.x架构 MapReduce2....

  • 了解MapReduce

    MapReduce是面向大数据并行处理的计算模型、框架和平台。MapReduce是一个基于集群的高性能并行计算平台...

  • 黑猴子的家:Azkaban2.5.0之MapReduce任务

    mapreduce任务依然可以使用azkaban进行调度 1、准备数据 2、上传数据到HDFS 3、查看数据 4、...

  • MapReduce

    MapReduce任务执行过程 MapReduce物理实现 1、一个数据块对应1~N个分片,默认是一个。 2.一...

  • 大数据之初步了解HDFS、Hadoop和MapReduce

    想学好大数据,首先要了解他的基础,所以,我们需要先了解HDFS和Hadoop以及MapReduce。 首先大家思考...

网友评论

    本文标题:了解大数据(2)MapReduce

    本文链接:https://www.haomeiwen.com/subject/kulxxqtx.html