yarn作业提交流程,及各个角色的作用

一、作业流程
	1、
		客户端到MR申请作业编号
		检验输入目录是否存在
		检验输出木木是否为空
		计算切片信息(偏移量,数据大小,放在那些DN上)
	2、
		将conf,jar,切片信息发送到HDFS以作业编号命名的目录下
	3、
		向RM发送请求提交作业
	4、
		RM调度NM,让NM分配一个容器,运行MRAppmaster程序
	5、
		MRAppmaster收集HDFS上的conf,jar,切片信息
	6、
		MRAppmaster分析出需要运行多少个Map任务,多少个reduce任务
	7、
		MRAppmaster向RM发送请求,让RM分配容器,运行map任务
	8、
		RM调度NM分配容器用于运行map任务
	9、
		当map运行到5%,MRAppmaster向RM发送请求,让RM分配容器,运行reduce任务
	10、
		RM调度NM分配容器用于运行reduce任务
	11、
		当任务结束,NM通知MRAppmaster做后续处理
		
	ps:客户端在提交完作业后,会监控作业执行的进度,每秒发送一次请求,请求作业执行进度,如果进度有变,则
		在控制台打印进度信息
	
二、角色作用
	客户端
		到RM取号,作业编号
		检验输入目录或文件是否存在
		检验输出目录是否指定,并且不存在
		计算切片信息
		
		将配置文件/jar包/切片信息发送到HDFS以作业编号命名的目录中(HDFS目录)
		
		向RM发送请求,提交作业
		监控作业执行的进度,每秒发送一次请求,请求作业执行进度,如果进度有变,则
		在控制台打印进度信息
		
	HDFS
		存储配置文件/jar包/切片信息

	ResourceManager
		
		调度NodeManager,让NM分配一个容器,运行MRAppMaster程序
		
		RM会调度NodeManager分配容器,用于运行map任务或者reduce任务
		
	NodeManager
		
		
		分配容器,根据MRAppMaster的请求,运行指定的任务,map任务或者reduce任务
		当任务运行结束,要通知MRAppMaster,MRAppMaster做后续的处理
		
	MRAppMaster

		负责计算的监控/失败重试/计算调度
		
		收集HDFS上的配置文件/jar包/切片信息
		分析出需要运行多少个Map任务,多少个reduce任务
		向RM发送请求,让RM分配容器,运行map任务
		当map任务完成5%之后,为reduce申请容器

你可能感兴趣的:(hadoop)