在大数据处理当中,最核心要解决的其实就是两个问题,大数据存储和大数据计算。在Hadoop生态当中,解决大数据存储,主要依靠就是HDFS,再配合数据库去完成。今天的大数据入门分享,我们就来讲讲Hadoop HDFS存储原理。

hadoop存储操作系统 hadoop存储原理_分布式

1、什么是HDFS?

HDFS即Hadoop distributed file system(hadoop分布式文件系统),在Hadoop当中负责分布式存储阶段的任务,它是一个分布式的文件系统,也可以用来存放单个机器的数据,只是大部分用来存储分布式数据。HDFS跟window下的NTFS一样可以通过目录树来查找数据。

2、HDFS解决什么问题?

整个Hadoop框架,本质上来说都是基于分布式实现的,随着数据规模的越来越大,一台机器无法存储所有的数据,所以需要多台机器来存储。而多台机器存储又不方便管理,所以需要一个分布式的系统来管理分布在不同机器中的数据。

hadoop存储操作系统 hadoop存储原理_hadoop_02

事实上,HDFS的出现,就是为了解决分布式框架下,数据存储管理的问题。而HDFS只是分布式文件系统中的一种,依托于Hadoop生态,去承担大数据分布式存储的管理任务。

3、HDFS的概念与架构

HDFS是典型的主/从架构。HDFS集群由一个NameNode组成,NameNode是一个主服务器,它管理文件系统名称空间并控制客户机对文件的访问。此外,还有许多datanode,通常是集群中的每个节点一个datanode,它们管理附加到它们所运行的节点上的存储。

hadoop存储操作系统 hadoop存储原理_java_03

Namenode:

即master,有以下功能

*管理文件系统命名空间;

*控制client对数据的读取和写入请求;

*管理数据块到datanode的映射关系;

*管理副本策略。

Datanode:

即slave,主要是存储文件块数据,接受来自namenode的指令,并执行指令对数据块的创建,删除,复制等操作。

Client:

即客户端,有以下功能:

*对文件的切分,HDFS上传数据时,client将文件切分成多个block再进行上传;

*与namenode交互,获取文件的索引信息;

*与datanode交互,对数据的读取和写入;

*在客户端中提供相关HDFS的命令,比如对HDFS的管理,格式化namenode,对HDFS对数据操作,比如上传文件到HDFS等。

Secondary namenode:

并非namenode的热备,当namenode挂掉的时候,并不能立马替换namenode并提供服务,只是在定时的对namenode进行备份,存在一定的时间误差,secondary会备份namenode的Fsimage和Edits,在紧急情况下,可以适用secondarynamenode来恢复部分的namenode。

关于大数据学习,Hadoop HDFS存储入门,以上就为大家做了简单的介绍了。在Hadoop大数据框架当中,HDFS作为分布式文件系统,始终是重要的核心组件,学习当中也自然需要深入理解掌握。