HDFS主要有NameNode和多个datanode节点组成。

架构模型:

hadoop 的元数据 hdfs中元数据的概念_HDFS

HDFS的设计思想

数据存储:元数据(metadata)+应用数据(applicationdata)

服务节点:名字节点(NameNode)+数据节点(DataNode)

服务架构:主从结构(Master/Slave), NameNode是主节点,单个,专门存储元数据,DataNode是从节点,多个,分布式存储应用数据

HDFS的数据存储

HDFS把数据分为元数据和应用数据(用户数据)。

元数据metadata,是描述数据的数据,指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode),在分布式文件系统中,元数据

不仅包括文件在磁盘的位置,还有磁盘的网络位置。

应用数据userdata,指普通文件中的实际数据。

/*用户需要访问应用数据时,首先得到它的元数据,才能定位到它的位置,再去得到应用数据。*/

HDFS以(block)块的方式进行组织,block大小可以从hdfs配置文件中更改dfs.blocksize;hadoop1的block默认是64MB,hadoop2则默认大小128MB;一个文件被分成多个块进行存储,如果一个文件小于一个块,也要使用整个块的空间。

hadoop2默认3个副本进行备份,即使用3倍空间来实现数据高容错性,hadoop3采用纠删码来实现数据冗余性,即1个数据副本+0.5个冗余编码,使用1.5倍空间来实现数据高容错性

HDFS的主要组成

NameNode,主节点,HDFS的全局管理,管理数据块映射,处理客户端的读写请求等

DataNode,从节点,负责存储数据块block;执行数据块的读写操作

SecondaryNameNode,不是NameNode的备份,是NameNode的辅助结点

NameNode,简称NN

在HDFS中NameNode是Masternode,只有一个,准确来说NameNodeActive只有一个,还有NameNodeStandby

从操作系统来看,NameNode是HDFS的主进程,NameNode开启即是HDFS的开始,NameNode关闭就是HDFS的停止

所有的元数据都存储在NameNode中,NameNode通过元数据管理整个HDFS,元数据保存在内存中

Namenode的主要功能

管理HDFS命名空间(文件、block、datanode之间的映射关系),实现海量数据的分布式文件管理

应答客户端存取,具体存取由DataNode负责,大大减轻NameNode的负担

协调整个HDFS存取,NameNode控制一切数据存取,而DataNode仅是一个执行者,并不知道文件的存在,全部由NameNode协调

NameNode的元数据管理

NN是HDFS的大脑,维护着整个文件系统的目录树,以及目录树里所有的文件和目录。这些信息以两个文件存储在文件系统

文件系统镜像FSImage(FileSystemImage),元数据的完整快照(目录结构),每次NN启动都会加载最新的FSImage。

编辑日志(EditLog),对FSImage的所有增加和删除操作都以日志形式保存

HDFS是一个大型的文件系统,频繁的执行写操作,会使系统运行极为缓慢。每个写操作不会立即更新FSImage,NN只将改动内容预写日志EditLog中

实际上FSImage是文件系统元数据的一个checkpoint,需要NN周期性地根据EditLog内容更新FSImage

2NN就是辅助NN,根据EditLog内容更新FSImage,把新的FSImage返回给NN

Datanode,简称DN

在HDFS中,DataNode是slavenodes,可以有多个

从操作系统来看,DataNode是slave进程,接受Master进程的管理

应用数据分布式存储在DataNode上

DataNode功能

DataNode处理客户端对文件的简单的读写请求,DD中的数据会被保存在各自节点的本地Linux文件系统中

DataNode会向NameNode周期性发送心跳信息来报告HDFS是否正常。默认情况下,这个周期是3秒

SecondaryNameNode,简称2NN

SecondaryNameNode不是NameNode的备份,它是NameNode的辅助进程

2NN是辅助NN,把FSImage和Editlog进行整理和合并的进程

SecondaryNameNode的功能

2NN定期从NN中获取两个文件editlog和fsimage,由2NN生成fsimage.chkpoint,把fsimage.chkpoint覆盖NN的fsimage

hadoop 的元数据 hdfs中元数据的概念_数据_02

HDFS的关键特性

HDFS HA,高可用性(高可靠性),解决单点故障问题

HDFS Federation,联邦机制,解决水平扩展问题

Rack Awareness,机架感知(副本放置策略),优化数据传输的带宽消耗

数据存储策略配置,提升存储设备的性价比