hdfs数据写入的过程

本篇翻译来自 Hadoop权威指南 2015版 Tom White著
Anatomy of a File Write
文件写入的剖析
此处引入创建新文件,写入内容和关闭文件的案例来描述hdfs写入的相关模型。

  1. Client首先调用create方法来穿件DistributedFileSystem(DFS),DFS会根据RPC call来交互namenode,会让nn来创建一个不关联任何blocker的一个空文件,此时nn会检查nn node下的文件, 来确保这个文件不存在,并且client有合理的权限来操作。如果检查通过可,nn就会创建该文件,否则会跑出IOException。DFS会返回client一个FSDataOutputStream,FSDataOutputStream会生成一些DFSOutputStream来处理与nn和dn的通信交互。
  2. DFSOutputStream会把write data 分解成为packets, 然后这些packets会进入一个内部队列,称为data queue,这个data queue会被dataStreamer消费。
  3. Datastreamer会向nn申请可以存储data的blockers,nn会把合适(suitable)的datanode 列表返回给Datastream。
  4. Datastreamer会根据dn清单和副本情况,形成一个pipeline来消费packets,比如说有replica=3,那么packet会先存储在第一个(client本地)dn上,然后forward给第二个副本(不同rack的node上),然后第二个forward给第三个副本(第二个副本rack上的不同node)。
  5. 一旦每个node上都完
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值