在Hadoop框架当中,作为三个核心组件之一的HDFS,也是大数据基础架构当中不可或缺的重要组件,负责大数据分布式存储的解决方案。今天的大数据学习分享,我们就主要来讲讲HDFS基础架构组成。
HDFS,根据官方的定义解释,是Hadoop的分布式文件系统,所谓文件系统,也就是说HDFS并不直接存储数据,而是主要进行分布式存储的管理,包括与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。
HDFS基础架构组成
HDFS基础架构组成,包括Client、NameNode、Secondary NameNode、DataNode等。
(1)Client
Client(代表用户)通过与NameNode和DataNode交互访问HDFS中的文件。Client提供了一个类似POSIX的文件系统接口供用户调用。
Client在各组件里,分别有其对应的Client。比如,在HDFS里,在分析其原理时,是HDFS Client。同理,在Mapreduce里,是Mapreduce Client。
(2)NameNode
整个Hadoop集群中只有一个NameNode。它是整个系统的“总管”,负责管理HDFS的目录树和相关的文件元数据信息。这些信息以“fsimage”(HDFS元数据镜像文件)和“editlog”(HDFS文件改动日志)两个文件形式存放在本地磁盘,当HDFS重启时重新构造出来的。
此外,NameNode还负责监控各个DataNode的健康状态,一旦发现某个DataNode宕掉,则将该DataNode移出HDFS并重新备份其上面的数据。
(3)Secondary NameNode
Secondary NameNode最重要的任务并不是为NameNode元数据进行热备份,而是定期合并fsimage和edits日志,并传输给NameNode。这里需要注意的是,为了减小NameNode压力,NameNode自己并不会合并fsimage和edits,并将文件存储到磁盘上,而是交由Secondary NameNode完成。
(4)DataNode
一般而言,每个Slave节点上安装一个DataNode,它负责实际的数据存储,并将数据信息定期汇报给NameNode。DataNode以固定大小的block为基本单位组织文件内容,默认情况下block大小为64MB(当然现在的版本已经是128MB了)。
当用户上传一个大的文件到HDFS上时,该文件会被切分成若干个block,分别存储到不同的DataNode;同时,为了保证数据可靠,会将同一个block以流水线方式写到若干个(默认是3,该参数可配置)不同的DataNode上。这种文件切割后存储的过程是对用户透明的。
HDFS主从结构
HDFS采用了主/从(Master/Slace)结构模型,一个HDFS集群是由一个NameDode和若干个DataNode组成的。
NameNode中心服务器(Master):维护文件系统树、以及整棵树内的文件目录、负责整个数据集群的管理。
DataNode分布在不同的机架上(Slaver):在客户端或者NameNode的调度下,存储并检索数据块,并且定期向NameNode发送所存储的数据块的列表。
客户端与NameNode获取元数据;
客户端与DataNode交互获取数据。
关于大数据学习,HDFS基础架构,以上就为大家做了简单的介绍了。对于Hadoop生态而言,HDFS的地位是难以替代的,依存于Hadoop基础架构,HDFS的生命力非常强大。成都加米谷大数据,专业
大数据培训机构,大数据开发,数据分析与挖掘,零基础班本月即将开班,课程大纲及试听课程可联系客服领取!