文档章节

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

Zootopia
 Zootopia
发布于 2016/07/12 23:15
字数 1412
阅读 34
收藏 1
点赞 0
评论 0

 

一.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
广州
程序员
Hadoop、MapReduce、YARN和Spark的区别与联系

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

cuiyaonan2000 ⋅ 05/08 ⋅ 0

HDFS 实验 (四) 集群操作

集群设置 http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html 用户手册 http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdf......

pcdog ⋅ 04/13 ⋅ 0

Hadoop 2.5.0编译到Apache Hadoop Common失败

[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Apache Hadoop Main ................................. SUCCES......

尧雪 ⋅ 04/19 ⋅ 0

Apache Hadoop 3.1.0 发布,原生支持 GPU 和 FPGA

Apache Hadoop 3.1.0 正式发布了,Apache Hadoop 3.1.0 是2018年 Hadoop-3.x 系列的第一个小版本,并且带来了许多增强功能。不过需要注意的是,这个版本并不推荐在生产环境下使用,如果需要在...

李玉珏 ⋅ 04/13 ⋅ 0

hadoop 2.8.3 集群环境搭建

hadoop 2.8.3集群环境搭建 Linux : CentOS 7 hadoop版本: hadoop-2.8.3 JDK: 1.8.0_161 这里打算直接root用户,搭建3个节点的hadoop集群环境。先关闭防火墙,安装成功后,启动哪里报错再针...

huangliuyu00 ⋅ 04/22 ⋅ 0

Hadoop 伪分布式搭建(2.6.5)

Hadoop2和Hadoop1是不一样的,所以专门为了Hadoop2 做了一个记录。 我的环境是Ubuntu 16.4 首先确保Java已经安装完毕,并且环境变量已经配置OK,具体的细节我就不在这里讲解了。 然后确保ssh...

shikenian520 ⋅ 04/11 ⋅ 0

spark-使用总结-大数据基础入门

1、partition数目 spark的输入可能以多个文件的形式存储在HDFS上,每个File都包含了很多块,称为Block。 当Spark读取这些文件作为输入时,会根据具体数据格式对应的InputFormat进行解析,一般...

我叫大兄弟 ⋅ 05/08 ⋅ 0

大数据平台 Hadoop 的分布式集群环境搭建

1 概述 本文章介绍大数据平台Hadoop的分布式环境搭建、以下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分别部署一个DataNod...

寰宇01 ⋅ 05/29 ⋅ 0

Ranger-Yarn插件安装

Ranger-Yarn插件ranger-0.6.0-yarn-plugin安装到Yarn的所有ResourceManager节点, 其他的NodeManager节点不需要安装。 登陆hdfs安装的用户,garrison/zdh1234(用户组hadoop),获取安装包解压安...

木木与呆呆 ⋅ 04/26 ⋅ 0

使用IDEA 搭建 spark on yarn 的开发环境+调试~

1.导入yarn和hdfs配置文件 因为spark on yarn 是依赖于yarn和hdfs的,所以获取yarn和hdfs配置文件是首要条件,将core-site.xml、hdfs-site.xml 、yarn-site.xml 这三个文本考入到你IDEA项目里...

qq_31806205 ⋅ 05/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部