您的位置:首页 > 其它

yarn框架运行过程

2020-04-07 12:15 976 查看

Mapreduce1.0缺点:
只有一个Jobtracker,存在单点故障的问题,
jobtracker任务过重,内存开销大,上限4000个节点
资源分配不合理,把CPU分成slot,mapslot 和reduceslot不能互用
于是提出了Yarn(hadoop2.0)

Yarn基本就是对Mapreduce1.0的功能进行了拆分:
Jobtracker负责的资源管理任务交给Yarn中ResourceManager去完成,任务调度和任务监控交给ApplicationMaster去完成
TaskTracker任务交给NodeManager完成
yarn只是一个资源调度框架,配合mapredyce2.0纯计算框架,而mapreduce1.0即是计算框架也是资源调度框架
mapreduce2.0写了一些基类,你可以继承这些基类去写然后shuffle,怎么分配CPU资源他不负责
Yarn的体系架构:
Resourcemanager处理客户端的请求,启动监控ApllicationMaster,监控NodeManager,负责资源调度分配,包括两大组件,调度器和应用程序管理器
AplicatonMaster为应用程序申请资源,并分配给内部任务,任务调度监控和容错,用户作业提交时,他去RM协调获取资源,RM以容器形式分配给他,他再把获得的资源进一步分配给内部的各个任务,实现资源二次分配,他还会和NodeManager保持沟通,通知NodeMAnager的启停,任务失败时重启,作业完成时,ApplicationMaster向RM注销容器,执行周期完成
NodeManager单个节点上的资源管理,主要负责容器的管理,不管任务,处理来自ResourceManager的命令,出来来自applicationMaster的命令,负责一些任务的启停,NodeManager里面有个容器container,封装了一定量的CPU资源,不是slot了,去限定每个应用程序可以使用的资源量,container是动态的,调度器接受来自ApplicationMaster的请求,把资源以container的单位分配给应用程序,这里分配离数据位置近的资源,实现计算向数据靠拢,他也会以心跳的方式一直给RM报告,因为任务中,资源的容器由NodeManager代为保管,他监控着容器使用情况,他得告诉RM资源用的怎么样,也得跟踪节点的健康状况,看看有没有节点宕机了,还得接受ApplicationMaster启停容器的请求,因为ApplicationMaster是作业管家

  • 点赞
  • 收藏
  • 分享
  • 文章举报
try to stay simple 发布了38 篇原创文章 · 获赞 0 · 访问量 1711 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: