本地的文件传到服务器上的hdfs_HDFS文件上传下载步骤

本文详细介绍了HDFS的文件上传和下载过程。在上传时,客户端首先与NameNode建立连接,创建文件并写入数据,利用DataNode间的管道进行高效传输和副本复制。在下载时,客户端通过FileSystem对象获取文件位置,从最近的DataNode读取数据,实现透明的流式读取。整个过程确保了数据的高可用性和可扩展性。
摘要由CSDN通过智能技术生成

先来了解下分布式文件系统(Distributed FileSystem),它是跨越多台计算机或者服务器来管理文件或目录等数据。换句话说,分布式文件系统是允许我们在一个集群的多个节点或机器上存储数据,并允许多个用户访问这些数据的文件系统。

1.当客户端要向HDFS文件系统上传文件时,第一步通过分布式文件系统先与NameNode建立连接,上传自己的元数据。

(a)通过调用客户端的对象DistributedFileSystem的create方法;

(b)DistributedFileSytem会发起对namenode的一个RPC连接,请求创建一个文件,不包含关于block块的请求。namenode会执行各种各样的检查,确保要创建的文件不存在与DataNode中,并且客户端具备创建文件的权限。如果检查通过,namenode会创建一个文件(在edits中),否则创建失败,客户端抛出异常。

2.DistributedFileSystem返回一个FSDataOutputStream对象给客户端用于写数据。FSDataOutputstream封装了一个DFSOutputStream对象负责客户端跟DataNode以及namenode的通信。

3.然后开始数据的传输,这时候我们假设要传输的文件大小是256M,有三个DataNode节点等待存放文件的block块。如果,我们使用网络进行传输,将256M的文件分为128M,分别往三个DataNode节点中传输数据,这样一次传输就需要占据128M*3的网络带宽,这还只是一个客户端的传输消耗,并且传输速度也会严重受到网络带宽的影响。

现在我们可以改进下,不在向三个DataNo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值