【Hadoop】HDFS - 创建文件流程详解

本文深入剖析Hadoop HDFS的文件创建流程,涉及NameNode、DataNode、Block、Lease等核心概念。从客户端发起创建文件请求,到DataNode接收数据,解析Pipeline的工作原理,揭示HDFS的分布式文件系统机制。
摘要由CSDN通过智能技术生成

1.本文目的

通过解析客户端创建文件流程,认知hadoop的HDFS系统的一些功能和概念。


2.主要概念

2.1 NameNode(NN)

HDFS系统核心组件,负责分布式文件系统的名字空间管理、INode表的文件映射管理。如果不开启备份/故障恢复/Federation模式,一般的HDFS系统就只有1个NameNode,当然这样是存在单点故障隐患的。

NN管理两个核心的表:文件到块序列的映射、块到机器序列的映射。
第一个表存储在磁盘中,第二表在NN每次启动后重建。

2.2 NameNodeServer(NNS)

负责NN和其它组件的通信接口的开放(IPC、http)等。
NN通过客户端协议(ClientProtocol)和客户端通信,通过数据节点协议(DataNodeProtocol)和DN通信。

2.3 FSNameSystem

管理文件系统相关,承担了NN的主要职责。

2.4 DataNode(DN)

分布式文件系统中存放实际数据的节点,存储了一系列的文件块,一个DFS部署中通常有许多DN。
DN和NN,DN和DN,DN和客户端都通过不同的IPC协议进行交互。
通常,DN接受来自NN的指令,比如拷贝、删除文件块。
客户端在通过NN获取了文件块的位置信息后,就可以和DN直接交互,比如读取块、写入块数据等。

DN节点只管理一个核心表:文件块到字节流的映射。

在DN的生命周期中,不断地和NN通信,报告自己所存储的文件块的状态,NN不直接向DN通信,而是应答DN的请求,比如在DN的心跳请求后,回复一些关于复制、删除、恢复文件块的命令(comands)。
DN和外界通信的接口<host:port>会报告给NN,想和此DN交互的客户端或其它DN可以通过和NN通信来获取这一信息。

2.5 Block

文件块,hadoop文件系统的原语,hadoop分布式文件系统中存储的最小单位。一个hadoop文件就是由一系列分散在不同的DataNode上的block组成。

2.6 BlockLocation

文件块在分布式网络中的位置<host:port>,也包括一些块的元数据,比如块是否损坏、块的大小、块在文件中的偏移等。

2.7 DFSClient

分布式文件系统的客户端,用户可以获取一个客户端实例和NameNode及DataNode交互,DFSClient通过客户端协议和hadoop文件系统交互。

2.8 Lease

租约,当客户端创建或打开一个文件并准备进行写操作,NameNode会维护一个文件租约,以标记谁正在对此文件进行写操作。客户端需要定时更新租约,否则当租约过期,NN会关闭文件或者将文件的租约交给其它客户端。

2.9 LeaseRenewer

续约管控线程,当一个DFSClient调用申请租约后,如果此线程尚未启动,则启动,并定期向NameNode续约。


三.创建一个文件

当hadoop的分布式集群启动之后,可以通过FS或Shell来创建文件,FS创建文件的命令如下:

//cluser是hadoo
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值