hadoop2.2.0 边角料(四)

本文详细介绍了HDFS中DFSClient如何通过DFSOutputStream及内部DataStreamer组件将数据写入新的Block。具体步骤包括向NameNode申请Block、更新Block信息、建立与DataNode的通信等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了一上午,终于找到了HDFS写一个新的block做了个啥。

DFSClient传数据最终是在DFSOutputStream中完成的。它内部的DataStreamer来完成真正的传输工作。

1.setup stream

nextBlockOutputStream

locateFollowingBlock调用namenode.addBlock向NN申请新的block,那么弄得会返回一个新的block,这时候block所在的datanode还不知道这个block的存在。createBlockOutputStream建立和第一个datanode的通信

setupPipelineForAppendOrRecovery

调用namenode.updateBlockForPipeline更新block信息

createBlockOutputStream建立和第一个datanode的通信


后面传数据就不用参考了


datanode接到数据后的处理,主要在BlockReceiver.java中完成,看一下receiveBlock()函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值