一.写数据
DataXceiver的writeBlock方法用于客户端(Client或DataNode)的写数据请求。
二.单一流程
- 读取客户端发送过来的消息(下文称之为“请求参数”)
- blockId:要写入块的block id。
- generationStamp:要写入块的block generationStamp。
- pipelineSize:num of datanodes in entire pipeline.整个管道里的datanode数,默认为3。
- isRecovery:是不是恢复操作。
- clientName:如果是DataNode到DataNode的请求,clientName为空。
- hasSrcDataNode:is src node info present.标识上一节点是DataNode。
- DatanodeInfo:如果hasSrcDataNode,读取此DatanodeInfo。
- numTargets:目标节点的数量。如果是Client的请求,则目标节点为3;如果是DataNode1的请求,则目标节点为2。
- DatanodeInfo[]:每个目标节点。
- checksum:校验数据。
- 根据上面要写入的block创建BlockReceiver。
- 创建流链,确保DataNode1到DataNode3都是通的。
- mirrorOut:stream to next target
- mirrorIn:reply from next target
- mirrorNode:the name:port String of next target
- mirrorSock:socket to next target
- replyOut:stream to prev target
- in:stream from prev target
- 调用BlockReceiver.receiveBlock(各种流)读取客户端数据写到本地,和读数据协议是一样的,参考http://zy19982004.iteye.com/blog/1881733。
三.整个流程
- 上述二是在某一节点上发生的行为,在整个写过程中,每个节点都会发生这个行为,于是形成了下列一个流程图。
- 当前节点会把writeBlock时接受到的请求参数通过mirrorOut继续发生给下一节点;下一节点收到请求,解析请求(二过程),决定是否发生AC应答...
- 如果整个流通道建立了,DataNode1读取client的数据,写到硬盘上,并同时把此数据流继续发送给DataNode2...边收边传
- 当前节点是怎么知道下一节点的?从客户端发生过来的流里面,读取到了目标节点DatanodeInfo[],mirrorNode = targets[0].getName();
相关推荐
hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar hadoop-yarn-client-3.1.1.jar hadoop-client-api-3.1.1.jar hadoop-hdfs-client-3.1.1.jar hadoop-mapreduce-client-jobclient...
hadoop源码2.2.0 Apache Hadoop 2.2.0 is the GA release of Apache Hadoop 2.x. Users are encouraged to immediately move to 2.2.0 since this release is significantly more stable and is guaranteed to ...
编译hadoophadoop-3.2.2-src的源码
02-hdfs源码跟踪之打开输入流总结.avi 03-mapreduce介绍及wordcount.avi 04-wordcount的编写和提交集群运行.avi 05-mr程序的本地运行模式.avi 06-job提交的逻辑及YARN框架的技术机制.avi 07-MR程序的几种提交...
hadoop平台下hdfs和mapreduce的源码分析。
02-hdfs源码跟踪之打开输入流总结.avi 03-mapreduce介绍及wordcount.avi 04-wordcount的编写和提交集群运行.avi 05-mr程序的本地运行模式.avi 06-job提交的逻辑及YARN框架的技术机制.avi 07-MR程序的几种提交...
│ ├─视频-零基础学习Hadoop3.0-HDFS从入门到源码 │ │ │ 00--课程内容大纲和学习目标.mp4 │ │ │ 01--大数据课程导论--大数据概念.mp4 │ │ │ 02--大数据课程导论--大数据特点(5V特征).mp4 │...
java操作Hadoop源码之HDFS Java API操作-上传文件,附带所需全部jar包,欢迎下载学习。
java操作Hadoop源码之HDFS Java API操作-创建目录,附带所需全部jar包,欢迎下载学习。
Hadoop 2.X HDFS源码剖析-高清-完整目录-2016年3月,分享给所有需要的人!
hdfs源码剖析 基于hadoop2.6 hdfs源码剖析 基于hadoop2.6
2.2 hadoop 10 2.2.1 第一步:解压 10 2.2.2 第二步:配置core-site.xml 11 2.2.3 第三步:配置hdfs-site.xml 11 2.2.4 第四步:配置mapred-site.xml 13 2.2.5 第五步:配置yarn-site.xml 13 2.2.6 第六步:配置...
阅读《Hadoop 2.X HDFS源码剖析》可以帮助读者从架构设计与源码实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很...
Hadoop_2.X_HDFS源码剖析_带索引书签目录_徐鹏,内容不错,值得阅读!
hadoop 2.7.2 源码,不用去别的地方找了,直接下载下来就能看hadoop的源码
Hadoop 培训课程(2)HDFS 分布式文件系统与HDFS HDFS体系结构与基本概念*** HDFS的shell操作*** java接口及常用api*** ---------------------------加深拓展---------------------- RPC调用** HDFS的分布式存储架构的...