HDFS 读写文件

HDFS  读文件

1)客户端显式调用 open()函数打开文件。
2)后台通过 RPC 调用 NN服务,获取欲打开文件的文件块信息和文件所
在的数据节点。

3)客户端显式调用 read()函数,从第一个数据块开始读取数据,并选择离
客户端最近的那个副本。
4)选择离客户端最近的副本后,客户端直接从 DN读取数据。
5)当前数据块读完后继续连接此文件下一个数据块最近副本所在的 DN。
6)读完数据时,客户端显式调用 close()函数。相对于读取本地文件系统数
据,HDFS 读取数据流程较复杂,但对客户端而言,需显式调用的函数仅为
open()、read()和 close(),与读取本地文件系统数据的方法基本相同。

 

HDFS  写文件

1)客户端调用 create()来创建文件。
2)后台通过 RPC 调用 NN服务,在文件系统的命名空间中创建新文件。
3)客户端开始写入数据。先将数据写到本地临时文件中,当累积到 1个数
据块大小时,客户端会从 NN获取 1 个 DN列表,同时后台会将该文件块切分
成多个数据包(packet)。
4)每个 packet 以流水线方式写入到 NN 返回的 DN。
5)最后一个 DN 针对每个 packet,朝着写入流水线的反方向返回 ACK,
确认 packet 成功写入所有 DN。
6)客户端调用 close()函数关闭文件,剩余所有数据将写入 DN,并关闭与
DN的连接。
7)通知 NN 写入完毕。
HDFS 写流程虽同样复杂,但客户端仅需操作 create()、write()和 close()函
数,与写入本地文件系统数据方法类似。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值