目录
- hadoop 面试
- 组件简单介绍
- Yarn 工作机制
hadoop 面试
链接
组件简单介绍
- ResourceManager (RM):整个集群资源的老大
- NodeManager (NM):单个节点资源老大
- mrApplicationMaster (AM):单个任务运行的老大
- Container:容器,相当一台独立的小电脑,里面封装了任务运行所需要的资源(如内存、CPu、磁盘、网络等)
总结:
任务是运行在容器Container当中的(自hadoop2.x后)
Yarn 工作机制
- Mr程序运行到job.waitForCompletion时会创建一个YarnRunner
- YarnRunner向ResourceManager申请一个应用(Application),然后准备提交job
- ResourceManager说你可以提交job,把你的job放在我给你指定好的集群路径下
- 资源(job)提交完毕后,客户端会向ResourceManager申请运行MrAppmaster
- ResourceManager会初始化请求为任务(Task),将任务放入调度队列中
- 如果此时刚好有一个NodeManager比较空闲,会把任务从队列中的领取走
- 该NodeManager会开辟一个容器Container,在Container中创建MrAppmaster
- MrAppmaster创建完毕之后就会去集群中读取job,拿到切片信息,计算出要开启几个MapTask
- MrAppmaster会向ResourceManager申请运行MapTask,ResourceManager会再次初始化请求为任务,将任务放入调度队列中
- 如果此时刚好有NodeManager比较空闲,会把任务从队列中的领取走,然后开辟容器,创建MapTask
- MapTask运行完毕之后,会将数据按分区写入磁盘,等待Reduce端拉取数据
- MrAppMaster会向ResourceManager再次申请容器,创建ReduceTask
- ReduceTask会从自己指定分区中拉取数据,然后处理数据
- ReduceTask运行完毕之后,MrAppMaster会向ResourceManager申请释放资源