Hadoop-1.0.0 HDFS append操作深入分析

社区版Hadoop 1.0.0中对HDFS append操作进行了重新设计和实现,解决了之前append操作实现的很多缺陷。下图是对HDFS append操作详细的一般分析,该操作涉及到client,namenode和datanode的很多交付,可见其复杂性。从Client角度来看,append一个文件首先需要调用DistributedFileSystem的append
摘要由CSDN通过智能技术生成

社区版Hadoop 1.0.0中对HDFS append操作进行了重新设计和实现,解决了之前append操作实现的很多缺陷。下图是对HDFS append操作详细的一般分析,该操作涉及到client,namenode和datanode的很多交付,可见其复杂性。




从Client角度来看,append一个文件首先需要调用DistributedFileSystem的append操作,该操作会返回一个FSDataOutputStream的流对象out,Client要向该文件append数据,可以调用out.write写入数据,最后调用out.close进行关闭。但是其内部的交互流程比较复杂,下面我们从上述三个client端的调用来进行逐一深入分析:
1. client调用fs的append操作:
     1.1 首先调用namenode的getFileInfo RPC调用,获取该文件的信息
     1.2 调用namenode的appendFile RPC调用,进行lease的检查(是否可以append,如果已经被别的client在append了,就不能再进行append),将该文件从INodeFile转换从INodeFileUnderConstruction,并且将该文件的最后一个Block以LocatedBlock的对象返回给Client。如果没有则返回null。注意,上述的流程图表示的是要append的文件之前已经成功关闭并且是一个IN
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值