HDFS

  • HDFS简介

1、HDFS来源于Google的GFS,是分布式文件存储系统。

2、解决了低成本存储大数据量的文件的问题(块),以及防止数据丢失(hdfs的副本)的问题

3、什么是分布式?

多个计算机节点协同完成一个任务(以hdfs读取一个文件为例:当客户端要读取一个文件时,要多个节点同时读取这个文件的块信息进行组装,将组装好的文件返回给客户端)

  • HDFS架构以及各个节点的作用

HDFS_第1张图片

HDFSClient:HDFS客户端

NameNode:存储hdfs的元数据信息(fsimage文件)内存中

元数据:

01、目录名、文件名、以及它们之间的层级关系(hdfs中)

02、存储到hdfs中的文件的元数据信息(包括一个文件由哪些块组成,这些块在哪些主机上)

03、文件系统中的权限以及所有者

SecondaryNameNode:周期性合并edits文件与fsimage文件

edits文件:hdfs运行中产生的对系统元数据操作,都会先保存到edits文件。

DataNode:

01、负责存在具体的文件的块(数据块)。

02、同时也负责为客户端提供读写服务。

03、根据NameNode的指令执行创建、删除、复制的操作。

04、心跳机制定时向NameNode发送存储文件的块信息。

05、与其它NameNode进行通信,实现数据块的备份(冗余)。

  • HDFS合并流程

​​​​​​​1、合并过程是指将文件系统中的edits文件与fsimage文件进行合并为一个新的fsimage文件的过程。

2、合并过程是在SecondaryNameNode节点中执行的(合并可以是按指定时间合并也可以是按照edits达到指定大小进行合并)

01、SecondaryNameNode通知NameNode进行合并操作

02、SecondaryNameNode拉取NameNode中的edits文件和fsimage文件(NameNode将新的操作记录到edits.new中)

03、SecondaryNameNode合并edits文件和fsimage文件为fsimage.chk的文件

04、NameNode从SecondaryNameNode中获取到fsimage.chk并替换以前的fsimage且将fsimage.chk名字改为fsimage,将edits.new名字改为edits并替换以前的edits文件

 

  •    HDFS写流程

​​​​​​​转载:https://blog.csdn.net/whdxjbw/article/details/81072207,这个博客写的很详细

  • HDFS读数据流程

HDFS_第2张图片

​​​​​​​01、客户端请求读取文件

02、NameNode检查是否有权限、请求的文件是否存在

03、客户端向NameNode请求需要文件的元数据(包括数据块信息、DataNode位置信息)

04、客户端就近并行读取DataNode中的数据块。

05、数据读取完成后会关闭连接

你可能感兴趣的:(HDOOP)