CentOS HDFS与YARN的关系
导读:总体关系 在 CentOS 上的 HDFS 与 YARN 分别承担数据存储与资源调度,二者协同构成 Hadoop 的数据处理底座:HDFS 负责海量数据的高可靠分布式存储,YARN 负责集群资源管理与任务调度。自 Hadoop 2.x 起,...
总体关系 在 CentOS 上的 HDFS 与 YARN 分别承担数据存储与资源调度,二者协同构成 Hadoop 的数据处理底座:HDFS 负责海量数据的高可靠分布式存储,YARN 负责集群资源管理与任务调度。自 Hadoop 2.x 起,YARN 从 MapReduce 中独立出来,使计算与资源解耦,HDFS 与 YARN 可独立部署与运行,但在生产计算(如 MapReduce、Spark)中通常联合使用,由 YARN 为运行在 HDFS 上的作业分配资源。
架构与职责对比
| 维度 | HDFS | YARN |
|---|---|---|
| 核心职责 | 分布式文件存储、元数据管理、数据块副本容错 | 集群资源管理与调度、容器生命周期管理 |
| 主从角色 | NameNode(主)、DataNode(从),并有 SecondaryNameNode 辅助 | ResourceManager(全局主)、NodeManager(每台机器从)、每个应用一个 ApplicationMaster |
| 资源抽象 | 文件/块(Block),默认副本数常为 3 | Container(封装 CPU、内存等资源) |
| 典型端口 | 50070(NameNode Web UI) | 8088(ResourceManager Web UI) |
| 数据/任务流 | 存储输入/输出数据,供计算框架读取与写入 | 为应用申请与分配 Container,监控与容错 |
| 高可用 | NameNode HA(Active/Standby) | ResourceManager HA |
| 与计算框架 | 可作为多计算框架的统一底层存储 | 支持 MapReduce、Spark、Tez 等多框架运行 |
以上对比要点来自 Hadoop 架构与常见部署实践。
协作流程
- 作业提交与资源申请:客户端向 ResourceManager 提交应用,RM 分配首个 Container 启动该应用的 ApplicationMaster(AM)。
- 数据定位与本地化:AM 根据输入路径从 NameNode 获取块位置,优先在数据所在节点或同机架节点申请 Container,减少跨网络传输。
- 任务执行与容错:AM 与 NodeManager 协作在各 Container 中启动任务,监控进度并在失败时重新申请资源;作业完成后 AM 向 RM 注销。
在 CentOS 上的集成要点
- 基础环境:安装 JDK 8、配置 SSH 免密、统一 /etc/hosts 与 NTP 时间同步,保证集群时钟一致。
- HDFS 配置:在 core-site.xml 设置默认文件系统(如 hdfs://namenode:9000),在 hdfs-site.xml 配置副本数与数据目录,首次启动前执行 hdfs namenode -format,用 start-dfs.sh 启动并检查进程与 Web UI(50070)。
- YARN 配置:在 yarn-site.xml 指定 ResourceManager 主机,启用 yarn.nodemanager.aux-services=mapreduce_shuffle;在 mapred-site.xml 设置 mapreduce.framework.name=yarn;用 start-yarn.sh 启动并检查 ResourceManager/NodeManager 进程与 Web UI(8088)。
- 快速验证:运行示例作业(如 wordcount)确认作业可提交、运行并产出结果,且读写 HDFS 正常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS HDFS与YARN的关系
本文地址: https://pptw.com/jishu/786097.html
