hadoop

发布于:2025-05-15 ⋅ 阅读:(12) ⋅ 点赞:(0)

1. Hadoop 的三大结构及各自的作用
• HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统)
◦ 作用:提供高可靠、高吞吐量的海量数据存储服务。它将数据分块存储在不同节点上,支持大规模数据集的存储,具备良好的容错性,某个节点故障时不影响整体数据访问,适合一次写入、多次读取的大数据存储场景 。
• MapReduce
◦ 作用:是一种分布式计算模型,用于大规模数据集的并行计算。它将复杂的计算任务拆分为 Map(映射)和 Reduce(归约)两个阶段,Map 阶段对数据进行并行处理,Reduce 阶段对 Map 结果进行汇总计算,能高效处理海量数据的运算,如日志分析、数据挖掘等任务 。
• YARN(Yet Another Resource Negotiator,另一种资源协调者 )
◦ 作用:负责集群资源的统一管理和调度。它为上层应用提供统一的资源管理和调度平台,可根据应用需求动态分配 CPU、内存等资源,提高集群资源利用率,支持多种计算框架在集群上运行。
2. YARN 的定义
YARN 是 Hadoop 中的资源管理和调度框架,它将资源管理和作业调度 / 监控功能分离,为集群中运行的各种应用程序(如 MapReduce、Spark 等)提供统一的资源管理和调度服务,使集群资源能更高效、灵活地被使用。
3. YARN 的三大组件及各自的作用
• ResourceManager(RM,资源管理器)
◦ 作用:负责整个集群的资源管理和分配,是 YARN 的全局资源管理器。它接收来自各个节点的资源汇报,监控集群资源使用情况,并根据应用程序的资源请求,按照一定的调度策略分配资源给 ApplicationMaster 。
• NodeManager(NM,节点管理器)
◦ 作用:运行在每个计算节点上,负责管理本节点的资源(CPU、内存等)和容器(Container)。它接收 ResourceManager 的指令,启动或停止容器,监控容器资源使用情况并向 ResourceManager 汇报。
• ApplicationMaster(AM,应用程序管理器)
◦ 作用:每个应用程序对应一个 ApplicationMaster,负责与 ResourceManager 协商获取资源,与 NodeManager 通信以启动和监控任务容器。它还负责应用程序的生命周期管理,包括任务的监控、容错处理等 。
4. YARN 的三个资源调度策略
• FIFO(First In First Out,先进先出)
◦ 原理:按照应用程序提交的顺序,先提交的应用先获得资源调度。
◦ 适用场景:适用于集群负载较低、应用对公平性要求不高的场景,简单直观,适合作业较少且无优先级区分的情况 。
• Capacity Scheduler(容量调度器)
◦ 原理:允许多个队列存在,每个队列可设置一定的资源容量(如内存、CPU 比例)。队列内采用 FIFO 调度,同时支持为不同队列设置不同优先级,可根据应用需求动态调整队列资源分配。
◦ 适用场景:适用于多用户、多应用共享集群的场景,能保证每个用户或应用类别有一定的资源份额,实现资源的合理分配,兼顾公平性和灵活性 。
• Fair Scheduler(公平调度器)
◦ 原理:其目标是让所有应用程序随着时间推移都能获取大致公平的资源。当集群有空闲资源时,会将资源分配给资源使用较少的应用,实现应用间资源的动态平衡。
◦ 适用场景:适用于对资源公平性要求较高的场景,多个应用程序竞争资源时,能尽量保证每个应用都有机会获得足够资源,避免资源过度倾斜 。