文档章节

Hadoop 1.X VS Hadoop 2.X 以及 Yarn浅析

Zootopia
 Zootopia
发布于 2016/07/12 23:15
字数 1412
阅读 44
收藏 1

 

一.Hadoop 1.X  和 Hadoop 2.X

 

Hadoop 1.X 的组件,主要有两个

  1. HDFS (HDFS V1)
  2. MapReduce (MR V1) 

 

Hadoop 2.X 的组件,主要有三个:

  1. HDFS V.2
  2. YARN (MR V2)
  3. MapReduce (MR V1)

Hadoop  1.X 的局限:

  • 只适合大量数据的批处理操作
  • 不适合实时的数据处理
  • 不适合数据流处理
  • 每个集群最多支持4000个节点
  • JobTracker 一个组件做了很多事情:资源管理,作业调度,作业监控,重新调度作业。
  • JobTracker 存在单点故障
  • 不支持多租户(Multi-tenancy )
  • 一个集群只有一个DataNode 和 NameSpace
  • 不支持水平扩展
  • 只能运行MR的作业
  • 使用Slots 来分配资源(内存,CPU等),而且是静态的MAP和静态的Reduce,一旦给MR 的作业分配了资源就不能重用,即使Slots 是出于空闲状态。

eg:10 个map作业和10个Reduce作业正在使用10+10个slots运行计算,所有的Map 作业正在运行,而所有的Reduce作业出于空闲状态,我们不能使用这10个Slots 来做其他的事情。

总之,Hadoop1.X 系统只是一单个目标的系统,我们只能用于基于MR 的应用。

 

在 Hadoop 2.X 为了解决1.X 的这些局限问题,提出了新的组件YARN (Yet Another Resource Negotiator).

Hadoop 1.X  Job Tracker :被分为两个组件

  1. Resource Manager:管理资源
  2. Application Master:管理应用(MR,Spark等)

  • Hadoop 1.X  只有一个命名空间,而2.X 有多个
  • Hadoop 1.X  只有MR 一个编程模式,而2.X有多种(MR,迭代,流式,图,Spark,Storm等)
  • Hadoop 1.X 存在扩展限制,而2.X 解决了这些
  • Hadoop 2.X 支持多租户,而 1.X 不支持
  • Hadoop 1.X 使用确定大小的Slots进行存储,而Hadoop 2.X 使用可变的容器
  • Hadoop 1.X 一个集群最多支持4000 个节点,而Hadoop 2.X 最多支持10000个节点

Hadoop 2.X Yarn 的好处

  • 高扩展
  • 高可用
  • 支持多个编程模型
  • 支持多租户
  • 支持多个命名空间
  • 提高了集群的利用率
  • 支持水平扩展

 

 

二.Hadoop 2.X  Yarn

YARN 有三个主要组件:

  • ResourceManager
  • NodeManager
  • ApplicationMaster

 

  1. ResourceManager

 该进程在主节点上(且不一定非的在NameNode上)

 给不同的计算机应用程序以最佳的方式提供资源

 协调Scheduler 和ApplicationManager

Scheduler 

  • 该进程在主节点上(和ResourceManager一起运行)
  • 调度JOB的执行(通过ResourceManager接收到的提交请求)
  • 给已经提交到集群的应用分配资源
  • ApplicationManager协调,并且保持对正在运行的应用的资源进行监控

ApplicationManager

  • 该进程在主节点上(和ResourceManager一起运行)
  • 帮助Scheduler 协调监控正在运行的应用
  • 接收来自客户端的执行请求
  • 协商第一个容器Container,使用适合的ApplicationMaster(从节点上),来执行应用的特定任务,

2.NodeManager

  • 该进程位于从节点(和DataNode进程一同运行)
  • 管理和执行容器Container
  • 监控资源使用情况(CPU,内存,网络等),并把情况报告返回给ResourceManager
  • 周期性地发送心跳信息给ResourceManager,更新他的健康状态

 

3.ApplicationMaster

  • 该进程位于从节点上(和NodeManager进程一同运行)
  • 每个应用有一个具体的库和NodeManger一起工作来运行任务
  • 此进程的每个实例即是一个应用,这意味着假如有多个提交的Job,则会有多个ApplicationMaster实例
  • 通过ResourceManager在从节点上获取合适的资源容器
  • 和一个或多个NodeManager一起工作,来监控从节点的任务执行情况

 

什么是容器(Container)?

  • 一个很小的资源单元(CPU,内存,硬盘),位于从节点上
  • Scheduler 进程和ResourceManager 进程一起运行对容器进行资源分配
  • 通过Yarn 执行一个Job的初始阶段,容器允许ApplicationMaster进程在集群的从节点上利用一些资源
  • Application通过在Yarn集群从节点的其他容器来来管理应用的执行。

Yarn 的架构

Step 1:Job/Application(可以是MR,Java/Scala应用,spark的DAGs作业等)通过Yarn应用的客户端提交到ResourceManager,与此同时,在NodeManager的任何容器中启动ApplicationMaster

Step 2: 在主节点上的ApplicationManager进程验证已提交的任务请求,并且通过Scheduler进行进行资源的分配

Step 3:  Scheduler进程给在从节点上的ApplicationMaster分配一个容器

Step 4:NodeManager这个守护进程启动AppcationMaster服务,通过第一步的命令,在其中一个容器当中

Step 5:ApplicationMaster通过ResourceManger谈判协商其他的容器,来提供一些细节,诸如从节点的数据位置,请求的CPU,内存,核数等

Step 6:ResourceManger分配最合适的从节点资源,并且通过节点细节或是其他细节信息响应ApplicaionMaster

Step 7:ApplicationMaster 给NodeManager(建议的从节点上)发送请求,来启动容器

Step 8:  当作业执行是,ApplicationMaster管理已经请求的容器的资源,并在执行完成后通知ResourceManger

Step 9:  NodeManagers周期性的通知ResourceManger,节点的可用资源的当前状态信息,这个信息可以被scheduler 在集群中的其他应用所使用。

Step 10:  如果在从节点上有任何的失败,ResourceManager 将会试着在最合适的节点上分配新的容器,那样 ApplicationMaster 能够在新的容器中完成相应的处理操作。

 

© 著作权归作者所有

共有 人打赏支持
Zootopia
粉丝 0
博文 10
码字总数 18242
作品 0
广州
程序员
视频jourk--hadoop2.x介绍与安装

一、 hadoop介绍 1.hadoop的由来:(google三篇论文) (2003)GFS --> HDFS (2004)MapReduce --> MapReduce (2006)BigTable --> HBase(Hadoop DataBase) 2.hadoop的著名案例 Facebook : HiveQ......

一枚Sir
2014/08/14
0
0
Hadoop、MapReduce、YARN和Spark的区别与联系

(1) Hadoop 1.0 第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成,对应...

cuiyaonan2000
05/08
0
0
Hadoop 1.x与Hadoop 2.x的区别

最近看了某大神的博客,非常详细地描述了关于Hadoop 1.x与Hadoop 2.x的区别和改进,博客原文链接如下: http://www.cnblogs.com/edisonchou/p/4470682.html 看了博客之后,自己简单总结概述了...

edwardGe
07/03
0
0
Hadoop 跑满状态下的 Yarn 资源管理谈

一、历史和由来 当下Hadoop稳定在了2.x.x版本,3.x版本也基本production stable了,虽然敢用的公司很少。在Hadoop 2.x后,都是用 Yarn (Apache Hadoop Yarn )来管理集群的计算资源。 随着互...

大数据之路
2012/10/11
0
0
大数据学习~Hadoop初识三Yarn模式

我们都知道在如今的Hadoop中主要有三个重要的执行管理器。一个HDFS,一个MapReduce,还有就是我们今天要看的 YARN。 2.0以前的Hadoop 在2.0以前的hadoop中是没有Yarn这个模式管理的。大部分都是...

Mr_zebra
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

elastic search+kibana 5.6.12安装指南

前提准备: 1,安装jdk, We recommend installing Java version 1.8.0_131 or later. 2, 设置文件最大打开数(使用命令ulimit -n查看) ulimit -n 65536 3, 创建用户elastic/用户组elastic gro...

PageYi
28分钟前
2
0
安装mongodb碰到error: unpacking of archive failed on file /etc/init.d/mongod;5bcec214: cpio: open如何解决

今用yum安装mongodb4.0.3发现一个错误,当用yum install 安装mongo-org 时除了mongodb-org-server 没有安装以外其他的都安装正确,重新安装mongodb-org-server 时报如下错误信息 在一篇老外 ...

chanking
29分钟前
1
0
O2OA:企业办公数字化转型的更佳选择

在全球都在积极探索由新一轮信息技术所引发的第四次工业革命时,一场激发企业内生动力的数字化运动在互联网企业和传统企业之间却呈现出两种截然不同的状态。   传统企业办公数字化不彻底仍...

超能之法师
32分钟前
1
0
基于SylixOS 对 Goahead 进行配置使用 OpenSSL

1. 编译并部署OpenSSL SylixOS支持OpenSSL,git地址为:http://git.sylixos.com/repo/openssl.git 获取OpenSSL工程源码后,导入RealEvo-IDE中编译,编译完成后生成动态库文件和openssl可执行...

Baiqq
34分钟前
1
0
nginx+tomcat均衡负载

一、安装好nginx环境,启动至少两个的tomcat服务; 此处tomcat访问地址为:http://192.168.106.128:1000/、http://192.168.106.128:1001/、http://192.168.106.128:1002/ 二、修改nginx配置文...

狼王黄师傅
36分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部