Client向HDFS写入数据的过程解析
2013-04-07 13:04
525 查看
转载自:http://www.linuxidc.com/Linux/2012-09/70998.htm
Client以数据块(Block)为单位进行数据存储。按照我们一般的理解,Client向HDFS写入数据,首先需要向NameNode申请Block;申请Block完成后,申请DataNode(包括备份存储的DataNode);二者完成后,Clent进行与DataNode之间的数据存储。
我们知道NameNode之中维护两张非常重要的表,一张是filename→blocks的映射;另外一张是block→machinelist的映射。如果是我进行设计,这两张表都可以在申请的时候完成记录。HDFS在在实现过程中,采用了另外一种方式。首先filename→blocks是在申请过程中进行记录的。当Client申请Block的时候,NameNode分配Block给客户端,并将该Block记录到该File的INode当中;在申请Block的时候,NameNode还会将DataNode和备份存储的DataNode发送给Client。但是,此时NameNode并没有记录Block和DataNode(machinelist)的映射关系。Client向DataNode写入数据完成后,由DataNode向NameNode周期性的进行汇报,报告自己节点所存储的所有Block(思考一下,为什么这么实现?)。我自己以为之所以要这么实现主要是为了考虑数据的可靠性,如果在Client和数据的传输过程中数据出现了问题,那么已经记录在NameNode
中的block→machinelist就会随之改变。当然这只是我自己的考虑,正确与否还有待考证。另外还有一个需要考虑的问题是,DataNode报告自己的block列表的频率是多少呢?
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-09/70998.htm
Client以数据块(Block)为单位进行数据存储。按照我们一般的理解,Client向HDFS写入数据,首先需要向NameNode申请Block;申请Block完成后,申请DataNode(包括备份存储的DataNode);二者完成后,Clent进行与DataNode之间的数据存储。
我们知道NameNode之中维护两张非常重要的表,一张是filename→blocks的映射;另外一张是block→machinelist的映射。如果是我进行设计,这两张表都可以在申请的时候完成记录。HDFS在在实现过程中,采用了另外一种方式。首先filename→blocks是在申请过程中进行记录的。当Client申请Block的时候,NameNode分配Block给客户端,并将该Block记录到该File的INode当中;在申请Block的时候,NameNode还会将DataNode和备份存储的DataNode发送给Client。但是,此时NameNode并没有记录Block和DataNode(machinelist)的映射关系。Client向DataNode写入数据完成后,由DataNode向NameNode周期性的进行汇报,报告自己节点所存储的所有Block(思考一下,为什么这么实现?)。我自己以为之所以要这么实现主要是为了考虑数据的可靠性,如果在Client和数据的传输过程中数据出现了问题,那么已经记录在NameNode
中的block→machinelist就会随之改变。当然这只是我自己的考虑,正确与否还有待考证。另外还有一个需要考虑的问题是,DataNode报告自己的block列表的频率是多少呢?
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-09/70998.htm
相关文章推荐
- Hadoop源码分析HDFS Client向HDFS写入数据的过程解析
- Client向HDFS写入数据的过程解析
- Hadoop源码分析HDFS Client向HDFS写入数据的过程解析
- HDFS的数据写入过程
- DFSClient技术内幕(写入数据——数据写入过程)
- Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程
- Android登录client,验证码的获取,网页数据抓取与解析,HttpWatch基本使用
- hdfs源码剖析文件写入过程时序图
- oracle 写入数据文件的过程
- 在.net中如何把调用存储过程代码写入数据连接层中
- hadoop源码解析之hdfs写数据全流程分析---datanode处理
- Httpclient4.5.2 POST Json 数据到另外一个网站, 解析
- HDFS1.0源代码解析—Hadoop的RPC机制之Client解析
- 嵌入式开发过程中透彻数据符号的解析
- Hadoop源码分析(1):HDFS读写过程解析
- HDFS的读数据过程分析
- HDFS读文件过程分析:读取文件的Block数据
- elasticsearch写入数据存储的过程
- Oracle中通过存储过程,Function,触发器实现解析时间类型的字段并插入的对应的数据表中