YARN框架

8 篇文章 0 订阅
6 篇文章 0 订阅

YARN中又两个Manager:ResourceManager和NodeManager

YARN:主要用于资源调度
处理步骤:
1.RunJar申请执行一个Job waitForCompletion()启动一个RunJar的进程——>报告resourceManeger
2.ResourceManeger返回job相关的资源提交的路径(staging-dir)和为本job产生的JobID给RunJar
3.RunJar把资源提交给HDFS的路径下(/tmp/XXX/XXX/yarn-staging/jobID)
4.向ResourceManeger汇报提交结果
5.ResourceManeger将本job加入任务队列(该job分配到哪些NodeManager上运行)
6.NodeManager领取任务(NodeManager上有container容器,容器中有运行该任务的一些资源)
7.分配运行资源容器container(一方面内存、CPU资源;另一方面从第二步路径下拿到资源和配置)
8.ResourceManeger启动MRAppMaster
至此,yarn框架完成。

Map和Reduce都是由MRAppMaster启动

9.MRAppMaster启动完成之后,向ResourceManeger注册。
10.启动yarnChild中的Map任务进程,执行写的Map类。
11.启动Reduce任务
12.任务执行结束,MRAppMaster向ResourceManeger注销自己。(相当于回收资源呢)

YARN起监控作用的是ResourceManeger------->NodeManager(启动yarn进程产生的,一直都在)
MapReduce中监控的是MRAppMaster------>yarnchild(MRAppMaster和yarnchild是动态产生的)

流程步骤如下图所示:

  YARN框架处理流程

MR程序的几种提交运行模式

本地模式运行
1、在win的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner运行
-----------输入输出数据可以放在本地路径(C:/wc/srcdata)
-----------输入输出数据也可以放在hdfs中(hdfs://rack1:9000/wc/srcdata)

2、在linux的eclipse里面直接运行main方法,但是不要添加yarn相关的配置文件,也会交给localjobrunner运行
-----------输入输出数据可以放在本地路径(/home/hadoop/wc/srcdata)
-----------输入输出数据也可以放在hdfs中(hdfs://rack1:9000/wc/srcdata)

集群模式运行
1、将工程导成jar包上传到服务器,用hadoop命令提交(hadoop jar wc.jar cn.itcast.hadoop.mapreduce.WCRunner)

2、在linux的eclipse中直接运行main方法,也可以提交到集群中去运行,但是,必须采取以下措施:
--------在工程src目录下加入mapred-site.xmlhe yarn-site.xml
--------将工程达成jar包(wc.jar),同时在main方法中添加一个conf的配置参数 conf.set(“mapreduce.job.jar”,“wc.jar”)

3、在win的eclipse中直接运行main方法,也可以提交给集群中运行,但是因为平台不兼容,需要做很多的设置
---------要在win中存放一份hadoop的安装包(解压好的)
---------要将其中的lib和bin目录替换成根据你的win版本重新编译出的文件
---------再要配置的系统环境变量HADOOP_HOME和PATH
---------修改YarnRunner这个类的源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值