`
cloudeagle
  • 浏览: 112596 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

HDFS中DataNode获取数据函数

 
阅读更多


BlockReceiver 函数, receivePacket()函数

最终获取的数据包写入磁盘

try {
if (!finalized) {
//finally write to the disk :
out.write(pktBuf, dataOff, len);

// If this is a partial chunk, then verify that this is the only
// chunk in the packet. Calculate new crc for this chunk.
if (partialCrc != null) {
if (len > bytesPerChecksum) {
throw new IOException("Got wrong length during writeBlock(" +
block + ") from " + inAddr + " " +
"A packet can have only one partial chunk."+
" len = " + len +
" bytesPerChecksum " + bytesPerChecksum);
}
partialCrc.update(pktBuf, dataOff, len);
byte[] buf = FSOutputSummer.convertToByteStream(partialCrc, checksumSize);
checksumOut.write(buf);
LOG.debug("Writing out partial crc for data len " + len);
partialCrc = null;
} else {
checksumOut.write(pktBuf, checksumOff, checksumLen);
}
datanode.myMetrics.incrBytesWritten(len);


/// flush entire packet before sending ack
flush();

// update length only after flush to disk
datanode.data.setVisibleLength(block, offsetInBlock);
}
} catch (IOException iex) {
datanode.checkDiskError(iex);
throw iex;
}

分享到:
评论

相关推荐

    Hadoop学习总结之二:HDFS读写过程解析

    在实际读取过程中,HDFS会优先选择地理位置上最近的DataNode进行数据读取,以此减少网络延迟,提高读取速度。同时,HDFS支持预读取机制,即在读取当前数据块的同时,客户端可以预先加载后续数据块的部分数据,进一步...

    浪潮简介HDFS

    - 读文件:客户端通过FileSystem的open()函数获取文件,DistributedFileSystem通过RPC从NameNode获取文件数据块的信息。NameNode返回保存数据块的DataNode地址。客户端通过FSDataInputStream读取数据,逐个连接最近...

    Hadoop学习总结之一:HDFS简介

    HDFS(Hadoop Distributed File System)是 Hadoop 生态系统中的一个核心组件,负责存储和管理大规模数据。下面是 HDFS 的基本概念和架构: 数据块(Block) HDFS 中的基本存储单位是 64M 的数据块。与普通文件系统...

    HDFS用户指南中文版

    - **数据分布**:通过哈希函数计算数据块的位置,确保数据均匀分布在整个集群中,避免热点问题。 #### 四、HDFS命令行工具 HDFS提供了丰富的命令行工具,用于管理和操作文件系统: - `hdfs dfs -put`:用于上传...

    hadoop源码分析-HDFS部分

    HDFS的核心思想是主从结构,由NameNode作为中心节点管理文件系统的元数据,DataNode则是实际存储数据的工作节点。NameNode负责文件系统的命名空间操作,如打开、关闭、重命名文件或目录,以及块的分配与回收;...

    Hadoop学习总结之二:HDFS读写过程解析.doc

    `DFSDataInputStream`使用`DFSInputStream`来读取数据流,它会逐个从`LocatedBlock`的`DatanodeInfo[] locs`中选择`DataNode`进行数据读取,并且根据网络状况和数据读取速度动态调整读取策略。 5. **文件写入** -...

    dorisdb_be_hdfs_udf.zip

    在Doris的架构中,BE(Backend)是数据存储和计算的核心组件,而HDFS(Hadoop Distributed File System)则常作为其底层的数据存储系统。UDF(User Defined Function)则是Doris提供的一种功能,允许用户自定义函数...

    详解Hadoop核心架构HDFS

    3. **客户端写入数据**:客户端将文件分割成多个Block,按照DataNode的地址顺序,依次将Block写入到各个DataNode中。 #### 文件读取过程 文件从HDFS中读取的过程如下: 1. **Client发起请求**:客户端向NameNode...

    Hadoop中的HDFS和Mapreduce

    - **错误处理**:对于Datanode的故障,HDFS会自动将故障节点上的数据块复制到其他健康的节点上;而对于Namenode故障,则依赖于Second Namenode或其他容错机制。 - **数据完整性**:通过CRC校验和来保证数据的完整性...

    c 操作hdfs

    这可能需要设置JAVA_HOME指向你的JDK安装路径,并且确保Hadoop的可执行文件在PATH环境变量中。 3. 编写Makefile:`makefile`是一个用于自动化编译过程的文件,其中包含了编译规则和目标。在这个场景下,`makefile`...

    MapReduce框架和HDFS框架

    HDFS采用了主从架构,由一个NameNode作为主节点,负责元数据管理,多个DataNode作为从节点,存储实际的数据块。这种设计使得HDFS能够在廉价硬件上实现高可用性和可扩展性。HDFS具有副本机制,自动在不同节点间复制...

    HDFS异构存储

    在实现层面,HDFS 通过 FsDatasetImpl 类中的构造函数解析 `dataDir` 配置项,生成 StorageType 列表。DataNode 在初始化过程中会获取存储位置信息,并将其上报给 NameNode。这一过程涉及到多个步骤,包括数据目录的...

    Hadoop介绍,HDFS和MapReduce工作原理

    3. **故障恢复**:当DataNode故障时,HDFS可以自动从其他副本中恢复数据,保证服务的连续性。 4. **读写流程**:读操作通常从最近的或者最空闲的DataNode开始,而写操作则先将数据块写入一个DataNode,然后复制到...

    Hadoop源代码分析之HDFS篇

    - **filecache**:提供了HDFS文件的本地缓存机制,以提高MapReduce任务中的数据访问效率。 - **fs**:定义了一个通用的文件系统接口,支持多种文件系统实现,如HDFS、本地文件系统等。 - **hdfs**:实现了Hadoop的...

    Hadoop+HDFS和MapReduce架构浅析

    每个DataNode都会定期向NameNode报告自己的状态,以便NameNode能够实时了解集群中的数据分布情况。 HDFS的设计特点包括高容错性、可扩展性以及适合大数据量的流式访问等。 ##### 1.2 MapReduce MapReduce是一种...

    hadoop源码分析-HDFS&MapReduce

    在Hadoop这个分布式计算框架中,HDFS(Hadoop Distributed File System)和MapReduce是两个核心组件,它们共同构建了大数据处理的基础架构。HDFS提供了高容错性的分布式存储,而MapReduce则提供了大规模数据集的并行...

    基于Hadoop的分布式文件系统,使用Java语言开发实现了一个本地文件管理系统,其中文件存在于HDFS集群中.zip

    【标题】基于Hadoop的分布式文件系统通过Java实现的本地文件管理系统,将文件存储在HDFS集群中,展示了Hadoop的高效数据处理能力和Java在大数据领域的应用。 【内容详解】 Hadoop是Apache软件基金会开发的一个开源...

    HadoopFileSystem简介

    HadoopFileSystem,也就是HDFS(Hadoop Distributed File System),是Hadoop项目中的一个子项目,它是一个高度容错的系统,适合于大数据集的存储和处理。HDFS采用主从(Master/Slave)架构,一个HDFS集群中通常包含...

    分布式文件系统-HDFS1

    分布式文件系统-HDFS1是Hadoop的核心组成部分,用于提供大规模数据存储和处理的能力。Hadoop是一种开源框架,它使得用户可以在普通硬件上构建和运行处理大量数据的应用程序。HDFS,全称Hadoop Distributed File ...

Global site tag (gtag.js) - Google Analytics