Spark-Yarn架构介绍
1.简介
MapReduct框架从hadoop-0.23版本以后发生了重大的变革, 新的计算框架我们称为MapReudce 2.0 或者 YARN(Yet-Another-Resource-Negotiator)
这篇文章主要是简单的介绍YARN的架构, 因为后续我们都会使用YARN提交Spark程序
MapReduct 2.0最主要的变革是把资源分配
和任务调度
隔离. 一个全局的资源管理称为ResourceManager (RM), 同时每个应用本身有一个ApplicationMaster (AM). 应用可以是单独的Job也可用是MapReduce job或者是是一个DAG job.
ResourceManager和NodeManager (NM)组成数据处理框架, ResourceManager对所有应用进行资源分配,管理和调度
每个应用程序都有一个ApplicationMaster, ApplicationMaster从ResourceManager分配到资源, 在NodeManager执行和监控任务
2. 架构
- 在 YARN 架构中,一个全局 ResourceManager 以主要后台进程的形式运行,它通常在专用机器上运行,在各种竞争的应用程序之间仲裁可用的集群资源。ResourceManager 会追踪集群中有多少可用的活动节点和资源,协调用户提交的哪些应用程序应该在何时获取这些资源。ResourceManager 是惟一拥有此信息的进程,所以它可通过某种共享的、安全的、多租户的方式制定分配(或者调度)决策(例如,依据应用程序优先级、队列容量、ACLs、数据位置等)。
- 在用户提交一个应用程序时,一个称为 ApplicationMaster 的轻量型进程实例会启动来协调应用程序内的所有任务的执行。这包括监视任务,重新启动失败的任务,推测性地运行缓慢的任务,以及计算应用程序计数器值的总和。这些职责以前分配给所有作业的单个 JobTracker。ApplicationMaster 和属于它的应用程序的任务,在受 NodeManager 控制的资源容器中运行。
- NodeManager 是 TaskTracker 的一种更加普通和高效的版本。没有固定数量的 map 和 reduce slots,NodeManager 拥有许多动态创建的资源容器。容器的大小取决于它所包含的资源量,比如内存、CPU、磁盘和网络 IO。目前,仅支持内存和 CPU (YARN-3)。未来可使用 cgroups 来控制磁盘和网络IO。一个节点上的容器数量,由配置参数与专用于从属后台进程和操作系统的资源以外的节点资源总量(比如总 CPU 数和总内存)共同决定。
- ApplicationMaster 可在容器内运行任何类型的任务。例如,MapReduce ApplicationMaster 请求一个容器来启动 map 或 reduce 任务,而 Giraph ApplicationMaster 请求一个容器来运行 Giraph 任务。您还可以实现一个自定义的 ApplicationMaster 来运行特定的任务,进而发明出一种全新的分布式应用程序框架,改变大数据世界的格局。
在 YARN 中,MapReduce 降级为一个分布式应用程序的一个角色(但仍是一个非常流行且有用的角色),现在称为 MRv2。MRv2 是经典 MapReduce 引擎(现在称为 MRv1)的重现,运行在 YARN 之上。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
HIVE一些小技巧和java操作hive
打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thinkgamer 1.写在前边的话 自己电脑上部署的hive版本是hive1.1.1,在终端执行hive 命令时,凡是涉及where语句时,就会出现异常退出,对于一个开发者怎么能忍受这种情况,于是果断升级到hive1.21 同时需要注意的是在hive 1.1.1版本中创建table的时候,最后凡是添加一个stored as…的时候也会报错退出,暂时不清楚原因,不过小主估计也是hive版本的问题。(因为版本换到1.2.1就正常了) 2.Hive中所谓的Derby单用户 其实我们好多人都知道hive里默认配置一个derby数据库,只支持单用户操作,其实不然,只要保证在同一个文件夹下启动hive数据库,也是支持多用户的,但是当有很多台客户一个例子端访问hive时,并不能保证在同一目录下,所以就成了单用户操作,同样对于同一个用户来说,只要启动hive...
- 下一篇
crontab环境变量问题
在crontab中运行脚本来查看hadoop相关信息,由于hadoop、java默认部署在/usr/local下面, 所以导致crontab执行时出现报错。具体与环境变量有关系,下文描述比较清楚。 ################ 下文出处: http://xiachaofeng.iteye.com/blog/1405184 今天遇见一个问题,crontab的定时任务不能自动执行,但是手动执行脚本一直能成功。查到最后,发现是脚本里用了系统的环境变量。下面开始解释: 1.crontab与环境变量 不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。所以注意如下3点: 1)脚本中涉及文件路径时写全局路径; 2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: cat start_cbp.sh #!/bin/sh source /etc/profile export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7