hdfs读写原理

hdfs读原理

  1. client调用DFS的open打开希望读取的文件,DFS代表了分布式文件系统的一个实例。
  2. DFS通过rpc,调用namenode机器,确定文件起始块的位置。同一个块,按照重复数,返回多个位置,这些位置按照hadoop集群拓扑结构排序,离client近的排在前面。
  3. 第2步返回DFSInputStream,它可以管理datanode和namenode。client调用DFSInputStream的read。
  4. DFSInputStream连接距离最近的datanode,读数据。
  5. 到达块末尾,DFSInputStream关闭和该DataNode的连接,寻找下一个块的最佳datanode,依次类推。

hdfs写原理

  1. client调用DFS的create,创建新文件。
  2. DFS通过rpc,调用namenode机器,创建一个空文件,并且为新文件添加一条记录。
  3. 第2步返回一个DFSOutputStream,它可以管理datanode和namenode。DFSOutputStream把写的数据切成一个个小的packet,放到data queue
  4. DataStreamer处理data queue的packet,先问namenode,当前packet最适合存储在哪些datanode,比如重复数是3,就找到3个最适合的datanode。packet被写到第一个datanode,第一个datanode会把packet输出到第二个datanode,以此类推。
  5. DFSOutputStream有一个ack queue,里面也是packet,当某个packet对应的应该写入的datanode都表示已经写入了,ack queue会把对应的packet移除。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值