本篇内容主要讲解“HDFS文件系统的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HDFS文件系统的介绍”吧!
上一节我们简单介绍了hadoop主要由三大块组成:分布式文件系统(HDFS)、分布式计算框架(MapReduce)、分布式调度器(yarn)组成,从这节课开始,我们逐一的详细介绍这些技术。本节课,就详细了解一下分布式文件系统--HDFS。
文件系统: 文件系统(file system)是命名文件及放置文件的逻辑存储和恢复的系统,我的理解就是管理文件命名及存放的一种软件系统。
常见的格式有:windows下:FAT\FAT32\NTFS Linux下:Ext2 Ext3 Mac OS 下:HFS
分布式系统: 分布式文件系统(Distributed File System,DFS)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络 与节点(可简单的理解为一台计算机)相连;
常见的有: GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文 件系统,而是应用级的分布式文件存储服务。
文件系统是一个很庞大的概念,这里只是很简单的一个介绍。
HDFS是大数据系统的基础,它提供了基本的存储功能, HDFS的思想很简单,就是namenode负责数据存储位置的记录,datanode负责数据的存储。使用者client 会先访问namenode询问数据存在哪,然后去datanode存储;写流程也基本类似,会先在namenode上询问写到哪,然后把数据存储到对应的datanode上。所以 namenode作为整个系统的灵魂,一旦它挂掉了,整个系统也就无法使用了。
1、 这里有几个概念:
namenode:主节点,主要负责HDFS集群的管理以及元数据信息管理
datanode:从节点,主要负责存储用户数据
secondaryNameNode:辅助namenode管理元数据信息,以及元数据信息的冷备份
注:怎么一理解元数据,最简单的一个比喻,我们在windows系统中在一个文件上鼠标右键选择属性所显示的内容就是元数据,简单说就是描述文件名称、
位置、大小等信息的数据。HDFS系统正是通过namenode来保存文件在哪里,有多大,权限等等属性的。
2、HDFS的存储空间
通过上图,我们可以看出,HDFS的总存储容量集群中所有的磁盘相加的和,比如上图中,HDFS对上层应用系统提供了共60T的空间,上层应用不需要知道
自己保存的文件具体在那一台服务器上。
在Hadoop中,一个文件被划分成大小固定的多个文件块,分布的存储在集群中的节点中。我们将这个划分的块称之为:block,block块的大小可以通过hdfs-site.xml当中的配置文件进行指定。在hadoop1当中,文件的block块默认是64M,hadoop2、3默认是128M,。
通过上图,我们可以看出:几个概念:
1、blocak划分:一个300M的文件,按128M的划分,被分成了三块,分别是blk1、blk2、blk3,
2、副本:我们可以看出第一个block块,都有三个副本,分别存在同一集群的不同的机器上,(注意:副本数可以根据配置文件设置)
注: 如果有一个文件大小为1KB,也是要占用一个block块,但是实际占用磁盘空间还是1KB大小。所以,HDFS不适合存储小文件的场景,比如我们
应用系统中的一些附件上传,通常文件都不会太大(小于64M),所以,就不适用使用HDFS来存储。
提一个问题:为什么我们不能通过修改配置文件,来让HDFS适用于存储小文件。(提示:和namenode有关,namenode的数据量会非常大)。
先盗一张图来看看,网上基本上都用这张图来说事:
HDFS集群包括,NameNode和DataNode以及Secondary Namenode。
NameNode负责管理整个文件系统的元数据,包括hdfs目录树、每个文件有哪些块、每个块存储在哪些datanode
DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode上存储多个副本。
Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。最主要作用是辅助namenode管理元数据信息
到此,相信大家对“HDFS文件系统的介绍”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。