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

Hadoop学习十六:Hadoop-Hdfs DataXceiverServer源码读数据

 
阅读更多

一.DataXceiverServer入口 

        Hadoop学习十五:Hadoop-Hdfs DataXceiverServer源码概述提到

  • DataXceiverServer每接收到一个请求,就创建一个DataXceiver来处理该请求。
  • DataXceiver首先读取请求版本号并检验;然后再读取一个字节的操作码,根据操作码转入相关的子程序进行处理。本文介绍读数据。

二.读数据

  • 读取客户端发送过来的信息。
    • blockId:要读取块的block id。
    • generationStamp:要读取块的block generationStamp。此时客户端已经知道了block id and generationStamp,至于怎么知道的,后续文章会讲到。
    • startOffset:偏移量。
    • length:读取长度。
    • clientName:客户端名字。

  • 根据上述信息创建BlockSender,以上信息都是BlockSender的成员变量。
  • 创建BlockSender出错,返回给客户端一个错误状态OP_STATUS_ERROR,不再继续进行下面步骤。创建成功,返回给客户端一个错误状态OP_STATUS_SUCCESS。
  • 调用BlockSender.sendBlock发送数据。
    • 首先发送应答头。
      • checksum
      • offset

    • 然后发送数据快。
      • packetLen:包长度,不好包头。
      • offset:偏移量。
      • seqno:包序列号。
      • tail:是否最后一个包,(offset + len >= endOffset) ? 1 : 0)。
      • len:数据长度。
      • checksum:校验数据。
      • data:block数据块。

 

1
1
分享到:
评论

相关推荐

    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)压缩算法...

    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 ...

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

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

    编译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