文件写入HDFS的整个流程
来源:互联网 发布:mac itunes 制作铃声 编辑:程序博客网 时间:2024/05/17 09:45
假设HDFS客户端为node11,用户A想要将文件apache.log写到HDFS上,该文件大小为100MB,假设用户配置的文件block大小为64MB,请结合你的理解,描述该文件写入HDFS的整个流程(请用步骤1,步骤2,……,描述)
- 使用HDFS提供的客户端(client),向远程的namenode发起RPC请求;
- namenode会检查要创建的文件apache.log是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常;
- 默认block大小为64MB,因此100MB被切分为两个block,客户端会依次写入每个block,client不会把整个block直接写入,而是会将文件切分成多个packets,并在内部以队列的形式管理这些packets,并向namenode申请新的blocks,获取用来存储replicas的合适的datanodes列表,列表的大小根据在namenode中对replication的设置而定。
- 开始以pipeline(管道)的形式将packet写入所有的replicas中。开发库把packet以流的方式写入第一个datanode,该datanode把该packet存储之后,再将其传递给在此pipeline中的下一个datanode,直到最后一个datanode,这种写数据的方式呈流水线的形式,
- 最后一个datanode成功存储之后会返回一个ack packet,在pipeline里传递至客户端,在客户端的开发库内部维护着"ack queue",成功收到datanode返回的ack packet后会从"ack queue"移除相应的packet。
- 如果传输过程中,有某个datanode出现了故障,那么当前的pipeline会被关闭,出现故障的datanode会从当前的pipeline中移除,剩余的block会继续剩下的datanode中继续以pipeline的形式传输,同时Namenode会分配一个新的datanode,保持replicas设定的数量。
0 0
- 文件写入HDFS的整个流程
- 文件写入HDFS的流程
- HDFS写入文件操作的处理流程源码分析
- hdfs文件写入过程流程分析
- 文件上传的整个流程
- HDFS写入文件的重要概念
- hdfs文件追加写入
- HDFS文件写入
- HDFS写入和读取流程
- HDFS写入和读取流程
- HDFS写入和读取流程
- 请求php文件的整个流程
- HDFS 客户端 读取和写入 HDFS中的数据流程的简单理解
- HDFS的存储结构以及写入、读取hdfs数据操作流程简单总结
- HDFS读取文件的整体流程概述
- [HDFS] 浅析HDFS文件读取、写入
- HDFS文件写入与读取
- HDFS文件写入与读取
- LeetCode 83:Remove Duplicates from Sorted List
- 输入输出流cout:写到标准输出的ostream对象; cerr:输出到标准错误的ostream对象,常用于程序错误信息; clog:也是输出标准错误流(这点儿和cerr是一样的),貌似平时很少用到这
- 高斯拉普拉斯边缘检测算子(LOG)
- PHP里面汉字简繁与拼音转换
- Ubuntu 安装wps-office
- 文件写入HDFS的整个流程
- 欧几里得算法的证明
- Android中Paint画笔类的使用详解
- 经验之谈—坐标系的转换
- 数据结构之哈夫曼树
- VS2010 MFC 组件 增加Framework 2.0 3.0
- 黑马程序员——Java---构造函数,final关键字
- enum 在c中的使用
- HTML5实现3D和2D可视化QuadTree四叉树碰撞检测