yarn集群的三种调度方式(简述yarn集群的工作流程)

如果你刚接触大数据技术,看到“YARN Container”“Application Master”这些术语可能会一头雾水。别担心!我们用日常生活中的例子来类比,轻松理解这个流程。


1. 角色解释:谁在干活?

先给图中的“演员”起个外号:

  1. YARN ResourceManager(资源大总管)

    • 相当于公司的“人力资源总监”,负责给所有任务分配电脑资源(CPU、内存)。

    • 它只管发资源,不关心任务具体做什么。

  2. YARN NodeManager(工头)

    • 相当于每个办公室的“小组长”,负责盯着自己管理的几台电脑,向大总管汇报资源情况。

  3. Application Master(项目经理)

    • 你的任务(比如数据分析)需要一个“项目经理”,负责向大总管申请资源,并监督任务进度。

  4. Driver(总指挥)

    • 你的代码(比如Spark程序)需要一个“总指挥”,负责拆解任务、告诉Executor该做什么。

  5. Spark Executor(工人

    • 真正干活的“工人”,负责执行具体的计算任务(比如统计单词数量)。

  6. Task(任务)

    • 工人手里的“具体工作”,比如统计一段文本中的单词。


2. 流程解析:任务是怎么跑起来的?

假设你要用Spark分析1TB的数据,流程如下:

第1步:你按下启动按钮(客户端提交任务)

  • 你写好的代码(Spark程序)通过客户端提交给YARN集群,相当于“老板发需求”。

第2步:资源大总管派活(ResourceManager分配资源)

  • ResourceManager收到需求后,找一个空闲的NodeManager,给它分配一个Container(集装箱),相当于租了一间带电脑的办公室。

  • 这个Container里会启动Application Master(项目经理),负责后续协调。

第3步:项目经理申请更多资源(Application Master谈判)

  • Application Master找ResourceManager说:“老板的任务需要100个工人(Executor)!”

  • ResourceManager批准后,通知各个NodeManager腾出资源,启动Spark Executor(工人)。

第4步:工人开始干活(Executor执行任务)

  • Driver(总指挥)把任务拆解成无数个小Task(比如按行统计单词),分发给Executor。

  • 工人们并行计算,结果汇总给Driver。

第5步:任务完成,打扫战场

  • 任务结束后,Application Master通知ResourceManager:“活干完了,资源可以回收了!”

  • 所有Container被释放,工人们下班。


3. 生活类比:开一家快递公司

  • ResourceManager:总部调度中心,决定哪个分站点接单。

  • NodeManager:分站点的站长,管理本地的快递员和车辆。

  • Application Master:接单后,总部派来的临时项目负责人,协调其他分站点支援。

  • Executor:其他分站点派来的快递员,帮忙打包送货。

  • Task:每个快递员要送的包裹。


4. 总结:YARN集群模式的核心思想

  • 分工明确:资源管理和任务执行完全分离,各司其职。

  • 动态伸缩:需要多少资源就申请多少,用完立刻释放,不浪费。

  • 容错机制:如果某个工人(Executor)突然崩溃,Application Master会申请新的资源重新跑任务。

这样一来,无论你要处理1GB还是1PB的数据,YARN都能高效调度资源,确保任务顺利完成。下次看到这些术语,试着用“公司管理”或“快递配送”来联想,是不是清晰多了?

大数据

Elasticsearch --- 相关基础知识整理

2025-3-3 10:15:39

大数据

hive正则表达式过滤特殊字符(hive正则表达式提取汉字)

2025-3-3 10:15:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧