HDFS文件上传和下载流程

1、HDFS上传文件

  1. 客户端请求上传文件:客户端(通常是Hadoop集群中的一个节点)发出上传文件的请求,改请求包括文件的本地路径、文件名以及在HDFS中的目标路径
  2. NameNode验证请求:客户端请求首先到达集群中的NameNode,NameNode负载管理HDFS的文件系统命名空间和元数据。NameNode验证客户端的权限,,确保客户端有权向指定的目标路径上传文件;查看文件名是不是在当前目录下重复。。。自检
  3. 分块和数据节点选择:当符合上传文件要求时,NameNode确定文件应该如何分块(默认情况下,HDFS将文件分成128MB或256MB的块)。然后,它提供一个包含数据块的列表给客户端,并告知客户端每个数据块应该存储在哪个数据节点上。
  4. 客户端分块上传:客户端将文件分成块,并开始并发地将每个数据块上传到相应的数据节点。上传的过程中,客户端和数据节点之间会进行数据校验,确保数据的完整性。
  5. 数据节点存储数据块:每个数据节点负责存储它所接收到的数据块。
  6. 副本复制:默认情况下,HDFS会将每个数据块复制到集群中的多个数据节点上,以提供冗余和容错性。副本的数量有Hadoop配置参数指定。

2、HDFS下载文件

  1. 客户端请求下载文件:客户端向NameNode发出下载文件的请求,请求包括要下载的文件和路径名。
  2. NameNode验证请求:NameNode验证客户端的权限,确保客户端有权访问要下载的文件。在元数据中查看该请求的资源是否存在。。。自检
  3. NameNode提供数据节点信息:NameNode提供包含文件块信息和数据节点位置的列表给客户端
  4. 客户端选择数据节点:客户端选择一个或多个数据节点,通常选择距离它们最近的节点,以便加快下载速度
  5. 数据块的组装和校验:客户端将下载的数据块组装成完整的文件。在下载过程中,数据的校验和验证确保数据的完整性。
  6. 文件完整性验证:客户端通常会计算下载文件的校验和(比如MD5或SHA-256),并将其与NameNode上存储的校验和进行比较,以确保下载的文件与原始文件一致。

你可能感兴趣的:(hdfs,大数据,hadoop)