-
HDFS简介
1、HDFS来源于Google的GFS,是分布式文件存储系统。
2、解决了低成本存储大数据量的文件的问题(块),以及防止数据丢失(hdfs的副本)的问题
3、什么是分布式?
多个计算机节点协同完成一个任务(以hdfs读取一个文件为例:当客户端要读取一个文件时,要多个节点同时读取这个文件的块信息进行组装,将组装好的文件返回给客户端)
-
HDFS架构以及各个节点的作用
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写流程
转载:HDFS读写流程(史上最精炼详细)_little prince,blue coder-CSDN博客_hdfs读写流程,这个博客写的很详细
-
HDFS读数据流程
01、客户端请求读取文件
02、NameNode检查是否有权限、请求的文件是否存在
03、客户端向NameNode请求需要文件的元数据(包括数据块信息、DataNode位置信息)
04、客户端就近并行读取DataNode中的数据块。
05、数据读取完成后会关闭连接