HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解

1.HDFS的文件系统介绍

HDFS是Hadoop Distribute File System 的简称,意为:Hadoop 分布式文件系统。是 Hadoop 核心组件之一,作为最底层的分布式存储服务而存在。
HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第1张图片

HDFS使用Master和Slave结构对集群进行管理。
一般一个 HDFS 集群只有一个Namenode 和一定数目的Datanode 组成。
Namenode 是 HDFS 集群主节点,Datanode 是 HDFS 集群从节点
两种角色各司其职,共同协调完成分布式的文件存储服务。 

HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第2张图片

  1. NameNode(Master)管理者 -只负责管理,管理集群内各个节点
  2. SecondaryNameNode 辅助管理-只负责辅助NameNode管理工作(SecondaryNameNode 不能代替 NameNode 比如:市长秘书不能代替市长执行工作)
  3. DataNode(slave) 工作者,是负责工作,周期像NameNode汇报,进行读写数据

HDFS角色作用简介
HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第3张图片

	HDFS集群包括,NameNode和DataNode以及Secondary Namenode。
	
	NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。
	
	DataNode 负责管理用户的文件数据块,每一个数据块都可以在多datanode上存储多个副本。
	
	Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。最主要作用是辅助namenode管理元数据信息

HDFS分块存储

  1. hdfs将所有的文件全部抽象成为block块来进行存储,不管是文件大小,全部一视同仁都是以block块的统一大小和形式进行存储,方便我们的分布式文件系统对文件进行管理
  2. 所有的文件都是以block块的方式存放在HDFS文件系统当中,在Hadoop1当中,文件的block块默认大小是64M,Hadoop2当中,文件的block块大小默认是128M,block块的大小可以通过hdfs-site.xml当中的配置文件进行指定
<property>
    <name>dfs.block.size</name>
   	<value>块大小 以字节为单位</value>//只写数值就可以
</property>

HDFS-分块存储图片理解
HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第4张图片
一个文件100M,上传到HDFS占用几个快?
一个块128M,剩余的28M怎么办?
事实上,128只是个数字,数据超过128M,便进行切分,如果没有超过128M,就不用切分,有多少算多少,不足128M的也是一个快。这个块的大小就是100M,没有剩余28M这个概念

抽象成数据块的好处
1.一个文件有可能大于集群中任意一个磁盘
20T/128 = xxx块,这些block块属于一个文件
2.使用块抽象而不是文件,可以简化存储子系统。
3.块非常适合用于数据备份进而提供数据容错能力和可用性

HDFS副本机制

HDFS视硬件错误为常态,硬件服务器随时有可能发生故障。
为了容错,文件的所有 block 都会有副本。每个文件的 block 大小和副本系数都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以在文件创建的时候指定,也可以在之后改变。
数据副本默认保存三个副本,我们可以更改副本数以提高数据的安全性
在hdfs-site.xml当中修改以下配置属性,即可更改文件的副本数

<property>
      <name>dfs.replication</name>
      <value>3</value>
</property>

第一份数据来源于用户的客户端
第二份数据存放在与第一份副本在同一个机架,不同的节点,按照一定的机制(cpu 内存 io 使用率和节点磁盘剩余容量)选取一个节点进行存放
第三份副本存放在,与第一第二副本不在同一机架,且逻辑距离最近的机架上,按照一定的机制(cpu 内存 io 使用率和节点磁盘剩余容量),选择一个节点进行存放

HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第5张图片

名字空间
HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。
Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被Namenode 记录下来。
HDFS 会给客户端提供一个统一的目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。
HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第6张图片
例如:这张图片我想找到ES系列轿车中的发动机型号 在图片中显示为第41页
然后直接打开第41页就可看到你想要看得东西

Namenode 功能

  1. 我们把目录结构及文件分块位置信息叫做元数据
    Namenode 负责维护整个hdfs文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block的id,及所在的datanode 服务器)

HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第7张图片
2. Namenode节点负责确定指定的文件块到具体的Datanode结点的映射关系。在客户端与数据节点之间共享数据。
HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第8张图片
3. 管理Datanode结点的状态报告,包括Datanode结点的健康状态报告和其所在结点上数据块状态报告,以便能够及时处理失效的数据结点。
DataNnode每三秒向NameNode进行报告一次
HDFS文件系统的基础理论,HDFS工作者和管理者的分配,HDFS文件存储容量的理解_第9张图片

你可能感兴趣的:(HDFS)