目录

  • ​​hadoop 面试​​
  • ​​组件简单介绍​​
  • ​​Yarn 工作机制​​

hadoop 面试

​​链接​​

组件简单介绍

  1. ResourceManager (RM):整个集群资源的老大
  2. NodeManager (NM):单个节点资源老大
  3. mrApplicationMaster (AM):单个任务运行的老大
  4. Container:容器,相当一台独立的小电脑,里面封装了任务运行所需要的资源(如内存、CPu、磁盘、网络等)

​总结:​​任务是运行在容器Container当中的(自hadoop2.x后)

Yarn 工作机制

Yarn 工作机制_数据

  1. Mr程序运行到job.waitForCompletion时会创建一个YarnRunner
  2. YarnRunner向ResourceManager申请一个应用(Application),然后准备提交job
  3. ResourceManager说你可以提交job,把你的job放在我给你指定好的集群路径下
  4. 资源(job)提交完毕后,客户端会向ResourceManager申请运行MrAppmaster
  5. ResourceManager会初始化请求为任务(Task),将任务放入调度队列中
  6. 如果此时刚好有一个NodeManager比较空闲,会把任务从队列中的领取走
  7. 该NodeManager会开辟一个容器Container,在Container中创建MrAppmaster
  8. MrAppmaster创建完毕之后就会去集群中读取job,拿到切片信息,计算出要开启几个MapTask
  9. MrAppmaster会向ResourceManager申请运行MapTask,ResourceManager会再次初始化请求为任务,将任务放入调度队列中
  10. 如果此时刚好有NodeManager比较空闲,会把任务从队列中的领取走,然后开辟容器,创建MapTask
  11. MapTask运行完毕之后,会将数据按分区写入磁盘,等待Reduce端拉取数据
  12. MrAppMaster会向ResourceManager再次申请容器,创建ReduceTask
  13. ReduceTask会从自己指定分区中拉取数据,然后处理数据
  14. ReduceTask运行完毕之后,MrAppMaster会向ResourceManager申请释放资源