`
85977328
  • 浏览: 1904507 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop经典系列(五)1.x的mapreduce过程图解

 
阅读更多
官方shuffle的架构图
从全局宏观上,解释了数据的走向和原理



细化架构图
从jobtracker和tasker解释了map/reduce的细节

从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路:
    1 首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败、重启等操作。
    2 TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。
    3 TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过 heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。上图虚线箭头就是表示消息的发送 - 接收的过程。

可以看得出原来的 map-reduce 架构是简单明了的,在最初推出的几年,也得到了众多的成功案例,获得业界广泛的支持和肯定,但随着分布式系统集群的规模和其工作负荷的增长,原框架的问题逐渐浮出水面,主要的问题集中如下:
    1 JobTracker 是 Map-reduce 的集中处理点,存在单点故障。
    2 JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增加了 JobTracker fail 的风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点主机的上限。
    3 在 TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于简单,没有考虑到 cpu/ 内存的占用情况,如果两个大内存消耗的 task 被调度到了一块,很容易出现 OOM。
    4 在 TaskTracker 端,把资源强制划分为 map task slot 和 reduce task slot, 如果当系统中只有 map task 或者只有 reduce task 的时候,会造成资源的浪费,也就是前面提过的集群资源利用的问题。
    5 源代码层面分析的时候,会发现代码非常的难读,常常因为一个 class 做了太多的事情,代码量达 3000 多行,,造成 class 的任务不清晰,增加 bug 修复和版本维护的难度。
    6 从操作的角度来看,现在的 Hadoop MapReduce 框架在有任何重要的或者不重要的变化 ( 例如 bug 修复,性能提升和特性化 ) 时,都会强制进行系统级别的升级更新。更糟的是,它不管用户的喜好,强制让分布式集群系统的每一个用户端同时更新。这些更新会让用户为了验证他们之前的应用程序是不是适用新的 Hadoop 版本而浪费大量时间。

作者简介
昵称:澳洲鸟,猫头哥
姓名:朴海林
QQ:85977328
MSN:6301655@163.com
本文的研究,离不开《至高天》朋友们的支持
猫头哥:http://phl.iteye.com/
根根:http://blog.csdn.net/suileisl
芝麻的奋斗:http://sesame84.iteye.com/
wan560:http://blog.csdn.net/wan560/
terrily:http://terrily.iteye.com/
  • 大小: 398.6 KB
  • 大小: 209.5 KB
分享到:
评论

相关推荐

    图解MapReduce.doc

    图解MapReduce,系统介绍Hadoop MapReduce工作过程原理

    【大数据入门笔记系列】第五节 SpringBoot集成hadoop开发环境(复杂版的WordCount)

    【大数据入门笔记系列】第五节 SpringBoot集成hadoop开发环境(复杂版的WordCount)前言环境清单创建SpringBoot项目创建包创建yml添加集群主机名映射hadoop配置文件环境变量HADOOP_HOME编写代码添加hadoop依赖jar包...

    图解hadoop环境的搭建(5)

    2. **下载Hadoop**:访问Apache官网或镜像站点下载Hadoop的稳定版本,如Hadoop 2.x或3.x系列。 3. **解压并配置Hadoop**:将下载的Hadoop压缩包解压到合适的目录,然后进行基本的配置。主要修改`etc/hadoop/core-...

    Hadoop完全分布式详细安装图解教程

    1. **Hadoop概述**:Hadoop是基于Java的分布式计算框架,由Apache软件基金会开发,其核心包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS提供高容错、高吞吐量的数据存储,而MapReduce则负责大规模...

    初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算...1、Hadoop示例程序WordCount详解及实例2、hadoop学习笔记:mapreduce框架详解3、hadoop示例程序wo

    MapReduce应用开发

    MapReduce的过程可以被图解为从输入数据到输出结果的一系列步骤。首先是将输入的数据拆分为键值对,然后对每一个键值对调用Map函数进行并行处理,每个Map函数会产生新的键值对。在Map阶段后,需要对产生的数据进行...

    大数据MapReduce和YARN二次开发.pdf

    MapReduce的图解展示了MapReduce的过程,包括Map阶段和Reduce阶段。Map阶段将输入的数据拆分为多个键值对,Reduce阶段对Map阶段产生的数据进行排序、组合以键值对的形式输出最终结果。 MR开发接口介绍 MR开发接口...

    Hadoop中文

    1. **Hadoop概述**:Hadoop的起源、发展及其在大数据处理中的重要地位,以及与云计算的关系。 2. **Hadoop架构**:详细介绍Hadoop的Master-Slave架构,包括NameNode、DataNode、JobTracker和TaskTracker等角色的...

    MapReduce Job本地提交过程源码跟踪及分析

    MapReduce是Hadoop生态系统中的核心组件,主要用于处理和存储大规模数据。...通过阅读《Job本地提交过程源码分析及图解》这样的文档,我们可以深入学习MapReduce的工作原理,提升我们的Hadoop编程技能。

    大数据学习资料全排序二次排序

    首先,我们来看"图画.png"可能包含的内容,这可能是一张描绘Hadoop MapReduce工作流程或者排序过程的图解,帮助我们理解数据是如何在集群中流动,并被排序的。图片可能展示了MapReduce的各个步骤,包括Split、Map、...

    Hive2--Hive和Hadoop关系.pdf

    3. **Hive与Hadoop的关系图解** 在关系图中,我们可以看到Hive处于Hadoop之上,作为数据处理的上层接口。Hive接收用户的HQL查询,然后进行解析、优化,生成相应的MapReduce作业。这些作业在Hadoop集群中执行,对...

    资料-Hadoop集成Kerberos安全技术

    2. **Kerberos在Hadoop中的应用**:在Hadoop生态系统中,包括HDFS、MapReduce、YARN、HBase等组件都可以通过Kerberos进行安全认证。每个组件都有自己的Service Principal,确保只有经过验证的进程才能执行操作。 3....

    状态机可视化png.zip

    1. MapReduce:MapReduce是Google提出的一种分布式计算模型,广泛应用于大数据处理。在MapReduce中,任务被分解为两个阶段——Map阶段和Reduce阶段。Map阶段将输入数据分割并映射到多个任务,Reduce阶段则对Map阶段...

    基于Greenplum Hadoop- 分布式平台的大数据解决方案10 - 客户端接口和程序(2).zip

    客户端接口和程序(2).ppt"则可能是配合视频的课件,包含了关键概念、步骤图解以及案例分析,帮助学习者更好地理解Greenplum和Hadoop客户端接口的工作原理和使用方法。课件可能涵盖了如何配置客户端环境、连接到...

    hadoop原理分析

    本文详细分析了hadoop的架构,对其组成原理做了细致的分析。配合图解让读者可以很快理解hadoop原理。

    图解spark核心技术与案例实站

    这部分内容将详细介绍Spark如何通过弹性分布式数据集(Resilient Distributed Datasets, RDD)实现数据并行计算,并探讨Spark与其他大数据处理框架如Hadoop MapReduce的区别。 Spark Core是Spark的基础,它提供了...

    图解系列之轻松学习 Spark(适合小白学习)

    Spark 是大数据处理领域中的一个重要工具,它诞生于加州大学伯克利分校AMPLab,旨在解决 Hadoop MapReduce 在处理实时数据流和交互式查询时的性能瓶颈。MapReduce 的计算模式在处理大规模数据时效率较低,因为它将每...

    java面试书单

    Hadoop生态圈包括Hadoop 1与Hadoop 2版本的HDFS、MapReduce、Hive、HBase、Zookeeper等技术,它们是大数据处理领域的关键技术,了解和掌握这些技术对于应对大数据相关面试问题有显著帮助。 此外,准备面试的建议有...

Global site tag (gtag.js) - Google Analytics