yarn session 资源申请 yarn任务申请不到资源_提交很多文件时总是失败


Hadoop向用户提供了三种能力:分布式文件系统HDFS、分布式计算模式MapReduce和资源调度框架YARN。由于Hadoop的影响力较大,在大数据圈里一直把“应用 on YARN”作为一个门槛条件,由YARN统一对资源管理和调度,实现应用和租户的资源隔离。很多人把YARN当成是Hadoop圈里面的K8S。接下向大家介绍应用程序如何部署到YARN上面去。


yarn session 资源申请 yarn任务申请不到资源_应用程序_02


整体交互图

应用为了能够跑在YARN上,需要编写客户端程序和ApplicationMaster程序。

客户端应用程序,即上图中的Client:

1.向Resource Manager发消息,获取应用ID;

2.构造Application Master运行时所需要的上下文,包括应用ID、启动的命令、依赖的JAR文件、需要的资源等;

3.向Resource Master提交Application Master。Resouce Master会选择一个Node Manager启动Application Master;

4.向Resource Master发消息,查询Application Master的运行状态或者杀掉应用程序;

Client可以通过与Resource Manager交互获取Application Master的状态,但是为了减轻Resource Manager的负担,一般Client直接与Application Master通信,查询其状态。

ApplicationMaster程序:

1.向Resouce Manager注册自己;

2.向Resource Manager申请资源,需要注意的时,申请资源的接口也是心跳的接口,所以Application Master在运行期间需要周期性地调用申请资源的接口;

3.Application Master收到分配的资源信息后,向Node Manager发送启动容器的请求,Node Manager启动容器;

4.Application Master周期性地向Node Manager发送消息,查询容器运行状态,当发现容易运行失败时,可以尝试重启容器;

5.当任务运行完成后,Application Master向Node Manager发送停止容器的请求,释放资源;

6.Application Master向Resource Manager发送应用完成的消息;

YARN应用整体的运行过程大体如上。可以看出,一个应用要跑在YARN上,需要做很多事情。目前开源社区为了方便应用上YARN,推出了YARN Service服务。这个服务帮用户做了很多事情,包括上面提到的客户端程序和Application Master,还有应用状态的监控,故障后重新拉起等。YARN Service对外提供命令行工具和REST API。用户编写自己的应用程序描述文件,通过YARN Service提供的接口提交这份文件。YARN Service会按照描述文件分配指定的资源、启动指定数据的应用实例。应用程序上YARN将会越来越容易。

Ai聘网-专注于互联网人才的智慧型招聘平台,以人才为核心,以人才自身画像为出发点,通过AI人工智能等技术手段,从海量岗位中自主发现精准匹配岗位,以智能筛选、主动推送,自主对比等算法方式,推送最符合求职者的岗位信息,帮助互联网人才做出更好的职业选择,让求职者每一次职业选择变的更加明智,彻底改变行业求职模式,让优质的岗位寻找合适的人才。同时为求职者量身打造了面试宝典板块,帮助求职者获取更专业更有针对性的专业技能知识,便于找到更优质的发展平台。通过大数据分析和自然语言处理等技术手段,对虚假岗位进行自主预警处理机制,杜绝虚假招聘等现象发生。为企业提供行业和岗位优质的分析报告,结合企业用户自身画像,多维度的帮助企业优化岗位信息,精准匹配人才,解决HR招聘效率低下,简历海选耗时,无效沟通等痛点。