泰安个人代做网站,专门做恐怖电影的网站,静态网站注入,网站建设的客户需求调查与分析1、理论 Apache YARN#xff08;Yet another Resource Negotiator的缩写#xff09;是Hadoop集群的资源管理系统#xff0c;负责为计算程序提供服务器计算资源#xff0c;相当于一个分布式的操作系统平台#xff0c;而MapReduce等计算程序则相当于运行于操作系统之上的应用…1、理论 Apache YARNYet another Resource Negotiator的缩写是Hadoop集群的资源管理系统负责为计算程序提供服务器计算资源相当于一个分布式的操作系统平台而MapReduce等计算程序则相当于运行于操作系统之上的应用程序。 YARN被引入Hadoop2,最初是为了改善MapReduce的实现但是因为具有足够的通用性同样可以支持其他的分布式计算模式比如SparkTez等计算框架。 2、组成部分 ResourceManager:
是在系统中的所有应用程序之间管理资源的最终权威即管理整个集群上的所有资源分配,内部含有一个Scheduler(资源调度器)
NodeManager:
是每台机器的资源管理器也就是单个节点的管理者负责启动和监视容器(container)资源使用情况并向ResourceManager及其 Scheduler报告使用情况.
container:
即集群上的可使用资源包含cpu、内存、磁盘、网络等(虚拟机或者Docker)
AppMaster(项目经理):
实际上是框架的特定的库每启动一个应用程序都会启动一个AM它的任务是与ResourceManager协商资源并与NodeManager一起执行和监视任务。
3、Yarn的工作流程重点) 1. 调用waitForCompletion方法每秒轮询作业的进度内部封装了submit()方法用于创建JobCommiter实例并且调用其的submitJobInternal方法。提交成功后如果有状态改变就会把进度报告到控制台。错误也会报告到控制台。
2. JobCommiter实例会向ResourceManager申请一个新应用ID用于MapReduce作业ID。这期间JobCommiter也会进行检查输出路径的情况以及计算输入分片。
3. 如果成功申请到ID,就会将运行作业所需要的资源包括作业jar文件配置文件和计算所得的输入分片元数据文件上传到一个用ID命名的目录下的HDFS上。此时副本个数默认是10.
4. 准备工作已经做好再通知ResourceManager调用submitApplication方法提交作业。
5. ResourceManager调用submitApplication方法后会通知Yarn调度器Scheduler调度器分配一个容器在节点管理器的管理下在容器中启动 application master进程。
6. application master的主类是MRAppMaster其主要作用是初始化任务并接受来自任务的进度和完成报告。
7. 然后从HDFS上接受资源主要是split。然后为每一个split创建MapTask以及参数指定的ReduceTask任务ID在此时分配
8. 然后Application Master会向资源管理器请求容器首先为MapTask申请容器然后再为ReduceTask申请容器。
9. 一旦ResourceManager中的调度器Scheduler为Task分配了一个特定节点上的容器Application Master就会与NodeManager进行通信来启动容器。
10. 运行任务是由YarnChild来执行的运行任务前先将资源本地化jar文件配置文件缓存文件
11. 然后开始运行MapTask或ReduceTask。
12. 当收到最后一个任务已经完成的通知后application master会把作业状态设置为success。然后Job轮询时知道成功完成就会通知客户端并把统计信息输出到控制台