码迷,mamicode.com
首页 > 其他好文 > 详细

hadoop学习笔记--hadoop读写文件过程

时间:2015-03-09 22:35:35      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:hadoop

读取文件:

 

下图是HDFS读取文件的流程:


技术分享

 

这里是详细解释:

 

 

 

1.当客户端开始读取一个文件时,首先客户端从NameNode取得这个文件的前几个block的DataNode信息。(步骤1,2)

 

2.开始调用read(),read()方法里,首先去读取第一次从NameNode取得的几个Block,当读取完成后,再去NameNode拿下一批Block的DataNode信息。(步骤3,4,5)

 

3.  调用Close方法完成读取。(步骤6)

 

当读取一个Block时如果出错了怎么办呢。客户端会去另一个最佳的DataNode上读取这个块,并通知NameNode。

 

这么一系列复杂的过程对客户端都是透明的。客户端只知道源源不断的从Stream中读取数据。

 

 

 

 

写入文件:

 
技术分享

1. 首先客户端高速NameNode:”我要创建一个文件”。NameNode会进行一系列检查,比如文件是否存在。一旦通过检查,则创建一个文件。这时候客户端就可以写入数据了。(步骤1,2)

2. 客户端在开始写入数据时,会把数据分片,然后放入一个队列。然后NameNode会分配一个DataNode的列表给客户端来写入数据。上图中是三个,也就是数据冗余三份。数据冗余的复制是在DataNode之间完成的。(步骤3,4,5)

3. 当客户端收到全部写入成功的回执(ack packet)之后,这时会把队列中上一个Block的数据删掉。然后进行下一个Block的写入。

hadoop学习笔记--hadoop读写文件过程

标签:hadoop

原文地址:http://blog.csdn.net/yusiguyuan/article/details/44160265

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!