`
zy19982004
  • 浏览: 662077 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
F6f66edc-1c1a-3859-b76b-a22e740b7aa7
Hadoop学习
浏览量:252015
社区版块
存档分类
最新评论

Hadoop学习十七:Hadoop-Hdfs DataXceiverServer源码写数据

 
阅读更多

一.写数据 

     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

三.整个流程 

  •       上述二是在某一节点上发生的行为,在整个写过程中,每个节点都会发生这个行为,于是形成了下列一个流程图。
  • 当前节点会把writeBlock时接受到的请求参数通过mirrorOut继续发生给下一节点;下一节点收到请求,解析请求(二过程),决定是否发生AC应答...
  • 如果整个流通道建立了,DataNode1读取client的数据,写到硬盘上,并同时把此数据流继续发送给DataNode2...边收边传
  • 当前节点是怎么知道下一节点的?从客户端发生过来的流里面,读取到了目标节点DatanodeInfo[],mirrorNode = targets[0].getName();

 

 

 

 

0
0
分享到:
评论

相关推荐

    hadoop最新版本3.1.1全量jar包

    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-lzo-0.4.21-SNAPSHOT jars

    而Hadoop-LZO则是针对Hadoop优化的一种数据压缩库,旨在提高HDFS(Hadoop Distributed File System)上的数据压缩效率和读写性能。这个压缩库是由Groupon开发并维护的,它实现了LZO(Lempel-Ziv-Oberhumer)压缩算法...

    flink-shaded-hadoop-2-uber-2.6.5-10.0.zip

    1. **数据读写**:Flink通过Hadoop的InputFormat和OutputFormat接口,可以读取和写入Hadoop支持的各种数据源,如HDFS、HBase等。这使得Flink可以方便地访问Hadoop生态系统中的存储系统,进行大规模的数据处理。 2. ...

    hadoop-2.2.0-src.tar

    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源码

    编译hadoophadoop-3.2.2-src的源码

    hadoop-2.8.1源码

    《深入剖析Hadoop 2.8.1源码:分布式系统的智慧结晶》 Hadoop,作为开源的大数据处理框架,自2006年诞生以来,一直是大数据领域的重要支柱。其2.8.1版本是Hadoop发展的一个关键节点,为用户提供了更稳定、高效的...

    hadoop-2.5.0-cdh5.3.6-src.tar.gz

    《Hadoop 2.5.0-cdh5.3.6 源码解析与应用探索》 Hadoop,作为大数据处理领域的核心组件,一直以来都备受关注。本篇将深入探讨Hadoop 2.5.0-cdh5.3.6版本的源码,解析其设计理念、架构以及主要功能,旨在帮助读者...

    hadoop-2.4.1版本大数据

    3. **配置Hadoop**:修改`etc/hadoop`目录下的配置文件,如`hadoop-env.sh`、`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`,设置Hadoop的相关参数,如HDFS的命名节点、数据节点路径等。 4. **格式化...

    hadoop源码分析-HDFS&MapReduce

    **HDFS源码分析** 1. **NameNode与DataNode**:HDFS的核心组件包括NameNode和DataNode。NameNode作为元数据管理节点,存储文件系统的命名空间信息和文件的块映射信息。DataNode则是数据存储节点,负责存储实际的...

    java操作Hadoop源码之HDFS Java API操作-上传文件

    在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...

    hadoop-common-2.6.0-bin-master

    标题中的“hadoop-common-2.6.0-bin-master”指的是Hadoop Common的2.6.0版本的源码编译后的二进制主目录,这个目录包含了运行Hadoop所需的各种基础工具和库。 在Windows 10环境下,由于操作系统本身的特性和Linux...

    win安装部署hadoop3.0.0并启动上传文件到HDFS(博文相关代码)

    - 将示例数据上传到HDFS:`hadoop fs -put /path/to/input/input.txt hdfs://localhost:9000/user/hadoop/input` - 运行WordCount任务: ```bash hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-...

    Hadoop 2.X HDFS源码剖析-高清-完整目录-2016年3月

    Hadoop 2.X HDFS源码剖析-高清-完整目录-2016年3月,分享给所有需要的人!

    hdfs-over-ftp-hadoop-0.20.0.rar_ftp_ftpoverhdfs_hdfs文件传入ftp_java

    这个项目可能提供了在Hadoop环境中通过FTP进行文件传输的能力,使得非Hadoop用户也能方便地访问存储在HDFS上的数据。 描述 "在hadoop分布式文件系统上实现ftp服务" 暗示了这个压缩包包含了一个解决方案,允许用户...

    hadoop段海涛老师八天实战视频

    02-hdfs源码跟踪之打开输入流总结.avi 03-mapreduce介绍及wordcount.avi 04-wordcount的编写和提交集群运行.avi 05-mr程序的本地运行模式.avi 06-job提交的逻辑及YARN框架的技术机制.avi 07-MR程序的几种提交...

    Cygwin+Eclipse搭建Hadoop单机开发环境-3

    在本教程中,我们将深入探讨如何使用...这个环境对于学习Hadoop、MapReduce编程以及进行数据处理实验非常有用。记得在操作过程中保持耐心,因为配置可能会有些复杂,但一旦设置成功,你将拥有一个强大的本地开发平台。

    hadoop-core-0.20.2 源码 hadoop-2.5.1-src.tar.gz 源码 hadoop 源码

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。这两个部分是Hadoop的核心基石,为大数据处理提供了基础架构。这里我们将深入探讨...

Global site tag (gtag.js) - Google Analytics