hdfs写文件流程

来源:互联网 发布:永恒网络 编辑:程序博客网 时间:2024/06/06 01:55
eg:client上传150M的数据到hdfs
1.客户端向namenode请求上传数据。是先写到edits文件中,记录操作日志
2.namenode检查连接条件,返回同意连接
3.client端请求上传第一个block(128M),返回dn列表
4.nn返回可用的dn列表dn1,dn2,dn4(dn选择策略:距离/空间;第一个副本优先选择同机架的dn节点,第二个副本考虑安全性要跨机架,第三个副本同机架
5.client端获取dn列表,尝试连接dn1节点(nio),连接成功后,dn1尝试连接dn2,dn2连接dn4,连接成功后,逐级返回给客户端
6.client接收到连接成功信息后,向dn1节点发送第一个block(形式:64k packet),写入到dn1缓存区,dn1节点进行校验(chunk),同时dn1向dn2赋值,流程相同,写入缓存区。
7.只要有一个写入成功就返回给客户端,因为某个节点失败可以通过nn配置的副本数量启动时进行赋值。
8.在请求上传第二个block。


原创粉丝点击