透过高频面试题解析,我们将深入探讨 YARN 在大数据处理中的关键作用。无论你是初学者还是渴望加深对 Hadoop 的了解,本文都将为你提供实用的面试准备。让我们一同揭示 YARN 的内部机制,为你的面试之旅增添动力!
一、yarn工作机制
1、mr程序提交到客户端所在的节点
2、客户端所在的节点向rm申请一个application
3、rm向客户端所在的节点返回applicatiion资源提交路径
4、客户端所在的节点将application资源提交到相应路径后
5、资源他提交完毕之后,向rm申请运行一个mrappmaster
6、rm将用户的申请初始化成一个task
7、空闲的某一台nodemanager1领取到该任务后创建容器,然后下载application资源
9、该nodemanager1向rm申请运行maptask容器
10、另外的nodemanager2,nodemanager3领取到任务后创建容器
11、nm1向nm2和nm3发送程序启动脚本
12、nm1向rm申请容器运行reduce任务
13、nm4,nm5领取到任务并创建容器后去相应的map获取分区数据
14、程序运行完之后,mrappmaster向rm申请注销自己
二、生产环境核心参数
1、rm相关
配置调度器、处理调度器请求的线程数量
2、nm相关
nm使用内存、nm为系统保留多少内存、虚拟核数和物理核数乘数、是否将虚拟核数当作cpu核数、是否让yarn自己检测硬件进行配置
3、container相关
容器最小内存、容器最大内存、容器最小cpu核数、容器最大cpu核数
三、yarn调度器
1、FIFO调度器:单队列,根据作业提交的先后顺序进行服务
2、容量调度器
(1)特点
多队列:每个队列可配置一定的资源量,每个队列采用FIFO调度策略;
容量保证:管理员可为每个队列设置资源最低保证和资源使用上限;
灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列;
多租户:支持多用户共享集群和多应用程序同时运行,为了防止同一个用户独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定
(2)队列资源分配:从root开始,使用深度优先算法,优先选择资源占用率最低的队列分配资源
(3)作业资源分配:默认按照提交作业的优先级和提交时间顺序分配资源
(4)容器资源分配:按照容器的优先级,如果优先级相同,按照数据本地性原则:任务和数据在同一节点、任务和数据在同一机架、任务和数据不在同一节点也不在同一机架
3、公平调度器
(1)与容量调度器特点相同
(2)与容量调度器不同点
核心调度策略不同:容量调度器优先选择资源利用率低的队列,公平调度器优先选择缺额比例大的(缺额:某一时刻作业应获资源和实际获取资源的差距叫”缺额“)
每个对列可以单独设置的资源分配方式:容量调度器是FIFO、DRF(对不同应用进行不同资源(cpu和内存)的一个不同比例的限制),公平调度器多一个FAIR
若有收获,就点个赞吧