Hadoop随笔(二):Hadoop V1到Hadoop V2的主要变化

一、消失的概念与新鲜的名词

  Hadoop V2相对于Hadoop V1的变化主要在于资源管理和任务调度,计算模型仍然保持map/reduce的模型。资源管理和任务调度的变化导致了工作流程的变化,一些概念消失而一些概念又出现。  

  1、JobTrack与TaskTrack

  JobTrack和TaskTrack在Hadoop旧版本(Hadoop0.x及Hadoop1.x)中是非常重要的概念。JobTrack对系统中的所有Job进行统一的管理,同时为Job分配相应的TaskTrack,还需要与所有的TaskTack通信以更新Job的任务进度和运行状况。JobTrack只有一个,尽管Hadoop V1为了降低其容错率,增加了备份JobTrack,但是其单点容错率所造成的瓶颈仍旧是不可避免的。TaskTrack运行本地任务和利用本地资源,向JobTrack报告任务状态并执行JobTrack指令。TaskTrack将任务的执行硬性划分为Map task splot和Reduce Task splot,在资源利用和任务执行上都降低了效率。

  JobTrack和TaskTrack的体系是Hadoop V1的鲜明特征,但是其缺点也随着Hadoop集群的Job数量的增加而越来越明显。并且,这种体系要求系统在更新时需要更新每一个JobClient的TaskTrack,而后又需要用户来测试新的系统是否支持原来的程序,系统维护难度增大。因此,在Hadoop V2中,JobTrack和TaskTrack的概念就消失了。

  2、资源管理器ResourceManager、应用主体ApplicationMaster和节点管理器NodeManager

  Hadoop V2将JobTrack的功能进行了拆分,从而降低其单点容错性,由此出现了资源管理器和应用主体。同时,将TaskTrack所在的JobClient的功能增强,出现了节点管理器,并且通过应用主体来链接到资源管理器。

  资源管理器对集群全局的资源进行管理,并且Hadoop V2的资源管理与Hadoop V1的资源又有所区别,主要在于Hadoop V2将内存作为了资源管理单元——资源容器——的核心因素之一。资源管理器分为调度器和应用管理器,调度器主要负责任务资源的分配和任务的调度,而应用管理器负责与应用主体进行通信,获取节点的信息并通知给调度器作为参考。

  应用主体伴随着应用而生,每一个应用都有一个应用主体。应用主体存在于节点上,与节点管理器相互协助对节点上的任务和资源进行管理。应用主体统一与应用管理器通信,但是并不是受应用管理器的管理,应用管理器只负责启动应用主体并管理其生命周期(与相应的节点管理器通信来启动应用主体)。如果一个应用的资源容器存在于不同的节点上,其应用主体还需要与其他节点上的节点管理器通信来获取相应资源容器的信息。

  节点管理器是节点上的框架管理器,获取整个节点上的资源容器状况,与调度器通信来使用资源容器,与应用管理器通信来启动应用主体。

二、Hadoop V2工作流程

  前一篇随笔已经结合源码详细的分析了Hadoop V1的工作流程,在Hadoop V2中工作流程与之有所不同,信息流主要在资源管理器(包括应用管理器和调度器)、应用主体、节点管理器和资源容器之间流动。

  图中每一步的具体功能如下:

  1:用户提交任务给资源管理器中的应用管理器,首先会由框架给此任务分配一个任务ID,然后写入HDFS用户应用缓存,再提交该应用给应用管理器。

  2:应用管理器与调度器协调获取该应用的应用主体所需要的资源容器

  3:由应用管理器启动节点管理器上的应用主体

  4:应用主体计算自身所需的资源容器数量并通知调度器

  5:调度器根据应用主体的申请和自身的资源统计,为应用主体分配适当的资源容器

  6:应用主体与资源容器所在的节点管理器通信,获取资源容器的使用权

  7:节点管理器查询自身资源容器的使用情况,启动相应的资源容器来执行任务

  8:被确定分配给应用主体的资源容器实时与应用主体通信,报告任务进度和状态

  9:应用主体将作业的执行状态反馈给用户

三、容错机制

  Hadoop V1的容错机制比较简单,即通过冗余副本解决节点宕机或随机错误。datanode上的任务块在本地存储空间和其他datanode中均存在一份副本,这样可以在任务失败或节点宕机的情况下可以重新运行或由其他节点重新启动任务。而namenode出现问题将是非常严重的错误,只能进行任务的重新运行。

  Hadoop V2的容错机制比较完善,是利用log来解决的。应用管理器是记录log的部件,它会在监督任务的Map和Reduce操作的同时记录log,标明已经完成的Map和Reduce任务,因此在节点宕机或者任务出错时只需根据log启动未完成的Map任务和Reduce任务即可。如果资源管理器出现问题,会根据ZooKeeper保存的资源管理器状态进行自我恢复。由于任务运行时主要由应用主体进行监督,所以对资源管理器的依赖度有所减小。

  Spark的容错机制与Hadoop V2的有一点类似:RDDs使用lineage来恢复出现问题的RDD,而lineage的作用就是记录粗粒度的数据转换操作,这可以为RDD的恢复提供完整的数据。

时间: 2024-08-02 12:34:03

Hadoop随笔(二):Hadoop V1到Hadoop V2的主要变化的相关文章

Hadoop 入门二、简要介绍Hadoop的各个主要模块(概念层次)

先从概念层次介绍下Hadoop的各个组件,下一部分会深入Hadoop的每个组件,并从实战层次讲解. 一.Hadoop构造模块 运行Hadoop的意思其实就是运行一组守护进程(daemons),每个进程都有各自的角色,有的仅运行在单个服务器上,有的则运行在集群多个服务器上,它们包括: NameNode Secondary NameNode DataNode JobTracker TaskTracker Hadoop是一个分布式存储与计算系统,分布式存储部分是HDFS,分布式计算部分是MapRedu

Hadoop随笔

Mapreduce 处理的数据必须具备的特点: --待处理的数据可以分解成许多小的数据集,而且每个数据集都可以完全并行的处理 计算模型的核心部分是map和Reduce函数: --这两个函数的功能由用户根据需要自己实现,只要能够按照用户自定义的规则, 将输入的键值对转换成另一批键值对输出即可 在map阶段,MapReduce框架将任务的输入数据分割成固定大小的片段,每个片段进一步分解成一批的键值对 Hadoop会为每个片段分map任务,把键值对作为输入,得到计算的中间结果<key,value>,

hadoop系列二:HDFS文件系统的命令及JAVA客户端API

转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6391518.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6.4 上一篇:hadoop系列一:hadoop集群安装 二:HDFS的shell命令 上一章说完了安装HADOOP集群部分,这一张讲HDFS. 其实基本上操作都是通过JAVA API来操作,所以这里的s

Hadoop的二次排序

Hadoop的二次排序 2013-01-08 14:46:53 分类: HADOOP hadoop的使用中,一般只关注运行结果.对于mapper和reducer之间的处理逻辑往往不care.比如key-value对到达reducer的先后顺序等 目前接触到的运用场景有: 1.根据用户操作时间来整理事件链,在网站分析里比较常用.需要按时间先后顺序来处理,如果过亿的访问操作全在reducer里来排序,对计算能力和内存都是一个挑战. 2.海量数据处理中,求去重distinct这种操作,往往需要先缓存很

Hadoop系列(二)hadoop2.2.0伪分布式安装

一.环境配置 安装虚拟机vmware,并在该虚拟机机中安装CentOS 6.4: 修改hostname(修改配置文件/etc/sysconfig/network中的HOSTNAME=hadoop),修改IP到主机名的映射(vi /etc/hosts ,添加 127.0.0.1   hadoop); 按照JDK,下载jdk1.7.0_60并解压到/soft目录中,然后在/etc/profile中添加  export JAVA_HOME=/soft/jdk1.7.0_60 和 export PATH

Hadoop(二):MapReduce程序(Java)

Java版本程序开发过程主要包含三个步骤,一是map.reduce程序开发:第二是将程序编译成JAR包:第三使用Hadoop jar命令进行任务提交. 下面拿一个具体的例子进行说明,一个简单的词频统计,输入数据是一个单词文本,输出每个单词的出现个数. 一.MapReduce程序 标准的MapReduce程序包含一个Mapper函数.一个Reducer函数和一个main函数 1.主程序 1 package hadoop; 2 import org.apache.hadoop.conf.Config

Hadoop入门(二)

一.Hadoop 1.0的模型: | split 0->map-[sort]->[1,3..] |  /merge | ==> reducer-->part 0 =>HDFS replication split 1->map-[sort]->[2,6..] |------------- | ==> reducre--->part 1         =>HDFS replication split 2->map-[sort]->[4,

hadoop计算二度人脉关系推荐好友

https://www.jianshu.com/p/8707cd015ba1 问题描述: 以下是qq好友关系,进行好友推荐,比如:老王和二狗是好友 , 二狗和春子以及花朵是好友,那么老王和花朵 或者老王和春子就有可能也认识,可以对老王推荐春子和或花朵作为好友. 注意以下是制表符:tab建,所以程序中用 /t进行分割 老王 二狗 老王 二毛 二狗 春子 二狗 花朵 老王 花朵 花朵 老王 春子 菊花 问题分析 问题分析: 主 ---> 从 从 --->主 分别列出每一个关系,然后都列出从--&g

深入Hadoop HDFS(二)

1. hdfs架构简介 1.1  hdfs架构挑战 1.2 架构简介 1.3 文件系统命名空间File System Namespace 1.4  数据复制 1.5 元数据持久化 1.6 信息交换协议 2.  hdfs数据可访问性 2.1  web interface 2.2 shell command <1>. hdfs架构简介 1.1 hdfs架构挑战 hdfs和大多数现有的分布式文件系统存在很多类似特点,但是又具有自己一些特性:具有很高的容错性highly fault-tolerant,

(十二)linux下hadoop安装配置

1.准备Linux环境 1.1关闭防火墙 #查看防火墙状态 service iptables status #关闭防火墙 service iptables stop #查看防火墙开机启动状态 chkconfig iptables --list #关闭防火墙开机启动 chkconfig iptables off 1.2修改sudo su root vim /etc/sudoers 给hadoop用户添加执行的权限 hadoop  ALL=(ALL) ALL 关闭linux服务器的图形界面:vi /