HDFS、YARN、MapReduce概述及三者之间的关系(图解)

本文详细介绍了Hadoop分布式文件系统(HDFS)的架构、组成部分、工作原理,以及MapReduce的执行流程和YARN资源调度平台的角色。重点阐述了HDFS的写入和读取流程,以及HDFS与MapReduce、YARN之间的协同作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HDFS架构概述


1、HDFS定义


HDFS(Hadoop Distributed File System) 是一种分布式文件系统,用于处理在商业硬件上运行的大型数据集。 它用于将单个 Apache Hadoop 集群扩展到数百 (甚至数千)个节点。

HDFS 是 Apache Hadoop 的主要组件之一,其他组件包括 MapReduce 和 YARN。
HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。

2、HDFS组成

HDFS由NameNode(主节点)、SecondaryNameNode(辅助节点)、DataNode(从节点)构成,

其中NameNode负责管理整个HDFS集群,SecondaryNameNode辅助NameNode管理元数据,DataNode负责存储实际的数据块(一个block块默认大小128MB)和对数据块的读、写操作。

2.1Block块
每一个文件可以配置副本数量,默认是3,副本的作用是防止因某个DataNode挂掉或磁盘损坏而导致数据丢失,除此之外块副本还可以提高块可读取的节点,提高mapreduce计算任务向数据移动的概率。

因为同一个DataNode放置相同的块数据是没有意义的,所以NameNode不允许DataNode具有同一块的多个副本,即副本数量配置不能大于DataNode节点的数量。

每个文件可以在写入时指定这个文件块的副本数量,也可以在未来修改某个文件的块副本数量,文件块的副本数量配置作为块元数据的一部分保存在NameNode中。

3.HDFS的特点

  • 心跳机制

        DataNode会定时(3秒)向NameNode发送心跳包,告知NameNode自己的还在活跃,如果超过一定时间(630秒)NameNode未收到DataNode的心跳包,就会认为该DataNode宕机了,此时会该DataNode的数据块交由其他活跃的DataNode储存。所有的DataNode每6个小时向NameNode汇报一次自己完整的数据块信息,供NameNode校验更新。

  • 负载均衡

        NameNode会保证所有的Dat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值