Hadoop2.0安装之YARN

YARN(Yet Another Resource Negotiator)是Hadoop2.0集群中负责资源管理和调度以及监控运行在它上面的各种应用,是hadoop2.0中的核心,它类似于一个分布式操作系统,通过它的api编写的应用可以跑在它上面,支持临时和常驻的应用,集群的资源可以得到最大限度的共享。资源是指CPU,内存,硬盘,带宽等可以量化的东西。

Hadoop1.0和2.0架构对比

  • 1.0的绝对核心是mapreduce,只能跑mapreduce的任务;2.0的绝对核心是YARN,除了可以跑mapreduce,还可以跑其它各种各样的任务,每个应用向YARN申请资源
  • 1.0的JobTracker和NameNode是单点,一旦挂掉,整个集群会瘫痪;2.0核心组件不再是单点,基于ZooKeeper实现了HA(RM Hadoop2.4版本及后才支持)
  • 2.0没有了JobTracker和TaskTracker,增加了ResourceManager,NodeManager,Application Master,Container
  • 2.0资源使用效率更高,资源使用更加弹性灵活
  • 2.0把资源管理以及调度和任务管理以及调度拆开,使得组件功能变得更简单,程序更加稳定健壮,1.0时都由JobTracker负责
  • 2.0比1.0架构更加复杂了
  • YARN的出现解决了1.0时代设计的缺陷,让Hadoop集群功能越来越完善,让Hadoop集群越来越稳定

YARN架构设计


(图片来源:hadoop官方文档)

  • Client客户端,提交任务到ResourceManager
  • ResourceManager(RM),负责接收任务,管理集群中的资源和调度,以及监控运行在YARN上的应用,它有2个核心的组件:1 可插拔的Scheduler资源调度器,2 ResoucerManagerApplicationMaster管理和监控应用
  • NodeManager(NM),负责管理单台机器的资源,通过心跳定时上报机器资源状态,启动和停止和监控Container,定时检查机器可用情况
  • ApplicationMaster(AM),运行在NM Container上的程序,由RM选择某台NM上的某个Container来运行这个程序,AM负责向RM申请应用所需资源,协调NM启动Container,负责应用任务的管理和调度,通过心跳定时向RM上报任务执行情况
  • Container,资源容器,不限定应用类型,可以跑任何任务,比如map任务,reduce任务,spark driver任务等,资源类型有:CPU,内存,硬盘,带宽等可量化的东西或者它们的组合。资源需要按照最小单位的倍数申请。
  • 执行流程概述;
    1 客户端准备好任务各种资源,包括代码,依赖包,配置文件等,通过RM客户端向RM提交任务
    2 RM进行权限检查和集群负载情况,如果通过,接受提交的任务,加入任务队列,等待调度器调度
    3 当有空闲资源时,RM选择一个NM,指示NM启动一个Container运行这个任务的AM
    4 这个应用的AM启动后,AM看看自己完成任务需要多少资源,然后向RM Scheduler申请资源
    5 Scheduler根据策略分配资源,返回资源信息给AM
    6 AM拿到已分配的资源信息后,协商NM启动Container,然后在Container运行自己的任务程序
    7 AM调度自己的任务,监控自己的任务状态(Container和AM通信),并定时向RM汇报任务状态
    8 AM执行完成,释放Container资源
  • RM出现异常;其它备份的RM接管,新的RM通知AM重新启动
  • NM出现异常:RM监控到NM异常,RM通知AM,AM做进一步处理
  • AM出现异常:RM负责重新启动AM,RM已经记录了AM任务状态信息,已经完成的任务不会再执行

RM实现HA


(图片来源:hadoop官方文档)

  • 大于等于2.4版本才支持HA
  • RM有2种状态,提供服务的处于Active状态,备份的是Standby状态
  • 通过ZooKeeper协调,实现故障转移
  • RM有内置ZKFC,只需开启配置,不需要单独启动额外的监控进程
  • RM状态信息存储方式:
    1 ZooKeeper
    2 HDFS
    3 本地文件系统,故障转移需要考虑信息如何同步,人工实现故障转移

调度策略

  • FIFO Scheduler(先进先出)
    先来的先执行,如果有任务执行时间长,占用资源多,后面的任务只能等待,即使是执行快,占用资源少的应用,也必须等待那个耗时耗资源的任务执行完
  • Capacity Scheduler(预先分配资源模式)
    N个任务队列,每个队列分配一定资源,每个队列资源互不共享,每个队列只有有权限的人或者组织才能使用。
    如果某些任务队列没有任务,会造成资源的浪费。相比FIFO模式,任务执行时间会变的更长,因为耗时耗资源的应用可用资源更少了。
  • Fair Scheduler(公平调度模式)
    先来的任务先执行,当有新的任务到来时,虽然上一个任务没有执行完,上一个任务释放的Container优先分配给这个新任务,当新任务执行完成时,释放的资源再给上一个任务使用。
    这样就能达到即不影响耗时的任务又能执行执行新任务的目的。在兼顾公平使用的基础上,最大化利用集群的资源。

参考资料

【0】八斗学院内部YARN学习资料
【1】YARN官方文档
http://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-site/YARN.html

原文地址:https://www.cnblogs.com/wadeyu/p/9696080.html

时间: 2024-10-15 15:07:04

Hadoop2.0安装之YARN的相关文章

HADOOP2.0(HDFS2)以及YARN设计的亮点

YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResouceManager负责对各个NodeManager上的资源进行统一管理和调度.当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManger申请资源,并要求NodeManager启动可以占用一定资源的任务. Hadoop2.0 YARN包含以下实体,可以看图: R

Hadoop2.0构成之YARN

YARN基本构成 Master/Slave组成,1个ResourceManager对应多个NodeManager: YARN由Client.ResourceManager.NodeManager.ApplicationMaster组成: Client向ResourceManager提交任务.杀死任务等: ApplicationMaster由对应的应用程序完成:每个应用程序对应一个ApplicationMaster,ApplicationMaster向ResourceManager申请资源用于在N

Hadoop2.0安装之非HA版

主要步骤跟Hadoop1.0(1.0安装地址)一致,主要在配置这块有更改 安装 下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-2.6.5/ hadoop安装目录创建./tmp目录,./dfs/name,./dfs/data 修改./etc/hadoop/hadoop-env.sh # 设置JAVA_HOME export JAVA_HOME="/usr/local/src/jdk1.8.0_181/" 修改./etc/ha

hadoop2.0安装和配置

hadoop2与hadoop1的配置有些许不同,最主要的是hadoop1里的master变成了yarn 这篇文直接从hadoop的配置开始,因为系统环境和jdk和hadoop1都是一样的. hadoop1的配置链接,从第六步开始 六.设置hadoop2参数 进入 usr/local/hadoop/etc/hadoop 文件夹,即可看到以下文件 6.1配置hadoop-env.sh 找到export JAVA_HOME这一行,去除前面的#号注释符. 修改 export JAVA_HOME=/usr

hadoop入门(3)——hadoop2.0理论基础:安装部署方法

一.hadoop2.0安装部署流程         1.自动安装部署:Ambari.Minos(小米).Cloudera Manager(收费)         2.使用RPM包安装部署:Apache hadoop不支持.HDP与CDH提供         3.使用jar包安装部署:各版本均提供.(初期为了理解hadoop,建议使用这种方式)         部署流程:                 准备硬件(Linux操作系统)                 准备软件安装包,并安装基础软件

大话Hadoop1.0、Hadoop2.0与Yarn平台

2016年12月14日21:37:29 Author:张明阳 博文链接:http://blog.csdn.net/a2011480169/article/details/53647012 近来这几天一直在忙于Hbase的实验,也没有太静下心来沉淀自己,今天打算写一篇关于Hadoop1.0.Hadoop2.0与Yarn的博文,从整体上把握三者之间的联系,博客内容如有问题,欢迎留言指正!OK,进入本文正题-- 在开始接触Hadoop的时候,也许大家对于Hadoop是下面的一个概念:Hadoop由两部

Hadoop2.0源码包简介

Hadoop2.0源码包简介 1.解压源码包: 2.目录结构: hadoop-common-project:Hadoop基础库所在目录,如RPC.Metrics.Counter等.包含了其它所有模块可能会用到的基础库. hadoop-mapreduce-project:MapReduce框架的实现,在第一代MR即MRv1中,MapReduce由编程模型(map/reduce).调度系统(JobTracker和TaskTracker)和数据处理引擎(MapTask和ReduceTask)等模块组成

Hadoop2.6.0安装 — 集群

文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自己学习的过程做以记录,另一方面希望也能帮助到和LZ一样的Hadoop初学者,去搭建自己的学习和练习操作环境,后期的 MapReduce 开发环境的配置和 MapReduce 程序开发会慢慢更新出来,LZ也是边学习边记录更新博客,路人如有问题欢迎提出来一起探讨解决,不足的地方希望路人多指教,共勉! 目

Hadoop-2.4.0安装和wordcount执行验证

Hadoop-2.4.0安装和wordcount执行验证 下面描写叙述了64位centos6.5机器下,安装32位hadoop-2.4.0,并通过执行 系统自带的WordCount样例来验证服务正确性的步骤. 建立文件夹 /home/QiumingLu/hadoop-2.4.0,以后这个是hadoop的安装文件夹. 安装hadoop-2.4.0,解压hadoop-2.4.0.tar.gz到文件夹 /home/QiumingLu/hadoop-2.4.0就可以 [[email protected]