Hadoop2.0版本,引入了Yarn。核心:HDFS+Yarn+Mapreduce
Yarn是资源调度框架。能够细粒度的管理和调度任务。此外,还能够支持其他的计算框架,比如spark等。
hadoop原理理解参考:
https://blog.youkuaiyun.com/wjlwangluo/article/details/76423147
yarn scheduler load simulater
https://i-blog.csdnimg.cn/blog_migrate/b9320fdcde283f8f300ff4eba67b98f8.png
通过在同同一JVM上处理和分派nm/am事件来模拟nm和am来实现去除网络原因的真实rm。(翻译)
目标:在不使用实际集群并使用真实工作日志的情况下按比例执行调度器。能模拟真实的工作负载。
每个nm和am都会建一个对应的模拟器,模拟器在线程池(thread pool)里运行。模拟器重新使用rm,并在模拟器之外建立包装器(wrapper)。调度包装器记录模拟器的表现并生成多个日志。
yarn架构 :(主从关系,Master/slave,RM管理NM)
rm(ResourceManager)控制整个集群并管理应用程序向基础计算资源分配。全局。(包括两个组成部分,1.调度器 resource scheduler,2.应用程序管理器application manager)
——1.处理客户端请求
——2.启动或监控am
——3.监控NodeManager
——4.资源的分配与调度
am(ApplicationMaster)管理在yarn内运行的每个应用程序实例。节点。负责接收client端传输的job请求,为应用(MapReduce程序)分配第一个container(资源池)来运行第一个application Master(更小的管理器),还有就是负责监控application Master,如果遇到失败重启application master
——1.负责数据切分
——2.为应用程序申请资源并分配给内部的任务
——3.任务的监控与容错
resource scheduler为了让每一个节点都充分利用起来,合理的分配和调度的一中管理器。不负责任何具体和应用程序相关的工作。
——1.容量调度器
——2.公平调度器
——3.队列调度器
application master当我们正常提交一个MapReduce任务的时候,在后台jps查看进行的时候,多了一个MRApplication的进程。其实就是一个java程序,他的类名就是MRApplication。application manager让node manager开辟一个application master。监控MAP任务和reduce任务,用户提交的每一个程序都会产生一个application master
——1.与RM调度器协商获得资源
——2.与NM通信,以启动任务、停止任务。
——3.监控旗下的任务的执行状态(map,reduce),如果失败,则重新启动任务
nm(NodeManager)管理yarn中的每个节点。
——1.管理单个节点上的资源
——2.处理来自rm和am的命令
container是yarn中的资源抽象,rm给am的资源便是container。cpu,内存,磁盘,网络,IO。(小虚拟机?)
将节点的资源切分出来组成一个可以独立运行任务的容器,用来运行任务
HDFS中,namenode管理DataNode
第二步中,建立了一个临时文件夹hdfs://...JOB129330,在之后会删除
第三步中,将工程打包上传