Hadoop HDFS源码学习笔记(七)--DFSInputStream -- openInfo

原创 2012年03月26日 15:06:03

现详细了解openInfo函数的内部实现,以及修改了什么

首先给出openInfo的调用序列图:


在openInfo函数中,首先会调用DFSClient的callGetBlockLocations,这个函数主要是通过跟namenode的交互,来完成从namenode取得用户请求的file的元数据信息,返回的内容为locatedBlocks

接下来会让DFSInputStream更新当前的locatedBlocks的信息,并且更新lastBlockBeingWrittenLength这个变量记录了当前读取file如果是underconstruction状态的话最后一个block正在写的字节长度

接下来会判断最后一个block是否处于complete状态,如果不是,则会根据元数据提供的block的pipeline来到datanode上获得block的写入长度,并赋值给lastBlockBeingWrittenLength

最后要对当前的currentNode赋值为null,因为currentNode记录的是当前操作的block的当前连接的datanode的info

下面看一下相关的类图:



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Hadoop HDFS源码学习笔记(二)

Hadoop文件系统中有一个抽象的文件系统类,HDFS只是其中的一个实现。java抽象类org.apache.hadoop.fs.FileSystem 定义了Hadoop中一个文件系统接口,并且该抽象...

Hadoop HDFS源码学习笔记(六)--fetchBlockByteRange

client端需要从datanode端读取数据,当顺序的读取block的时候,会调用到fetchBlockByteRange函数,该函数中,有一个死循环,在循环内部首先使用函数getBlockAt()...

Hadoop HDFS源码学习笔记(一)

其实我很害怕阅读源代码,不过得克服自己的恐惧感,所以打算开始阅读HDFS的源码,学习它主要有需要两个方法配合使用一是阅读源码,找到入口函数,然后根据一步步的跳转和关键数据结构的学习来了解 二是运行源码...

Hadoop HDFS源码学习笔记(四)

一、首先根据HDFS的API写一段程序,然后是用Eclipse进行debug 单步跟踪,从而查看源码执行流程: import java.net.URI; import org.apache.h...

Hadoop HDFS源码学习笔记(三)

继续上一篇blog,进一步分析FileSystem的API,并完善类图 3、write 数据 FileSystem类有一系列的create方法,其中简单的方法就是给定一个Path对象,然后...

大数据学习笔记2--hdfs工作原理及源码分析

windows下配置hadoop hadoop 安装包解压,路径不要有特殊字符 lib和bin直接解压出来的不可用,需要自己重新编译 配置环境变量:HADOOP_HOME,path中添加:bin目录 ...

《Hadoop 2.X HDFS源码剖析》读书笔记(NameNode)

1. 文件系统目录树FSDirectoryHDFS文件系统的命名空间是以“/”为根的整个目录树,是通过FSDirectory类来管理的。FSNamesystem也提供了管理目录树结构的方法,当FSNa...

《Hadoop 2.X HDFS源码剖析》读书笔记(RPC)

1. HDFS概述1.1 体系结构HDFS是一个主从(Master/Slave)体系结构的分布式系统。Namenode是HDFS的Master节点,负责管理文件系统的命名空间(namespace),以...

《Hadoop 2.X HDFS源码剖析》读书笔记(Client)

1. DSFClient实现对于管理文件/目录以及管理与配置HDFS系统这两个功能,DFSClient并不需要与Datanode交互,而是直接通过远程接口ClientProtocol调用Namenod...

《Hadoop 2.X HDFS源码剖析》读书笔记(DataNode)

1. Datanode逻辑结构1.1 HDFS FederationFederation的HDFS集群可以定义多个Namenode/Namespace,这些Namenode之间是互相独立的,它们各自分...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)