Yarn(Hadoop2.0)学习笔记(二)

Hadoop1.0中的状况

  • JobTracker必须是不断跟踪所有的taskTracker和所有的map,reduce任务,taskTracker上的任务都是JobTracker来分配的
  • 2.0 优化的方向
    • 我们减少了单个JobTracker的职责,将部分职责委派给taskTracker(AM),因为集群中有多taskTracker,在新的设计中,这个概念通过将JobTracker的双重职责(RM集群资源管理和任务协调(AM))分开为俩中不同类型的进程来反映
    • 不在拥有JobTracker,引入资源管理器(RM),赋值跟踪集群中的活动节点和可用资源,并将它们分配给任务
    • 对于提交给集群的每个作业,会启动一个专用的,短暂的JobTracker(AM)来控制改作业中任务的执行,短暂的JobTracker由在从属节点(NodeManager)上运行的taskTracker启动

Hadoop2.0中的设计

  • ResourceManager(RM)代替集群管理器
  • ApplicationMaster(AM)代替一个专用且短暂的JobTracker
  • NodeManger(NM)代替了taskTracker
  • 一个分布式的应用程序代替了一个MapReduce作业
  • 重构的根本思想:将JobTracker俩个主要的功能跟历程单独的组件,这俩个功能是 资源管理(RM)和任务调度/监控(AM)

Hadoop1.0跟2.0的对比

对比
  • slot的大小是固定的,container的大小是动态的
  • yarn中任务都成为了一个应用程序(AM)
  • AM挂了,这个作业就挂了,在1.0中相当于JobTracker挂掉,这个集群挂掉, yarn中只是单独一个AM挂掉,然后RM会重新启动一个AM

yarn的整个架构

整个架构
  • yarn类似的相当于一个操作系统
  • MapReduce成为了yarn上的一种应用框架,相当于spark,hive,storm

Yarn相对于旧的MapReduce框架的优势

  • 减少了JobTracker(现在的RM)的资源消耗,并且让监测每一个job子任务(tasks)状态的程序分布式化了,更安全,更优美
  • AM是一个可变更的部分,用户可以对不同的编程模型写自己的AM,让更多类型的编程模型能够泡在Hadoop急群众
  • 对资源的标识以内存为单位,比之前以剩余slot数据更合理
  • 老的框架中,JobTracker一个很大的负担就是监控job下的tasks的运行状况,现在,这个部分就扔给了ApplicationMaster做了
  • 资源表示成内存量,那就没有了之前的map slot /reduce slot分开造成集群资源闲置的尴尬情况

Yarn的容错能力

  • RM挂掉:单点故障,新版本可以基于Zookeeper实现HA高可用集群,可通过配置 进行设置准备RM,主提供服务,备同步主的信息,一单主挂掉,备立即做切换阶梯进行服务
  • NM挂掉: 不止一个,当一个挂掉,会通过心跳方式通知RM,RM将情况通知对应AM, AM作进一步处理
  • AM挂掉: 若挂掉,RM负责重启,其实RM上有一个RMApplicationMaster,是AM的AM,上面保存已经完成的task,若重启AM,无需重新运行已经完成的task

你可能感兴趣的:(Yarn(Hadoop2.0)学习笔记(二))