`
spark_li
  • 浏览: 20782 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hadoop学习笔记——Hadoop 读写文件过程剖析

 
阅读更多
读取文件:

 

下图是HDFS读取文件的流程:


 

这里是详细解释:

 

 

 

1.当客户端开始读取一个文件时,首先客户端从NameNode取得这个文件的前几个blockDataNode信息。(步骤1,2

 

2.开始调用read()read()方法里,首先去读取第一次从NameNode取得的几个Block,当读取完成后,再去NameNode拿下一批BlockDataNode信息。(步骤3,4,5

 

3.  调用Close方法完成读取。(步骤6

 

当读取一个Block时如果出错了怎么办呢。客户端会去另一个最佳的DataNode上读取这个块,并通知NameNode

 

这么一系列复杂的过程对客户端都是透明的。客户端只知道源源不断的从Stream中读取数据。

 

 

 

 

写入文件:

 

1. 首先客户端高速NameNode:”我要创建一个文件NameNode会进行一系列检查,比如文件是否存在。一旦通过检查,则创建一个文件。这时候客户端就可以写入数据了。(步骤12)。如果文件大于一个Block的大小,则一个一个block地写入,下面的步骤是一个block的写入流程。

 

2. 客户端在开始写入数据时,会请求NameNode为当前block分配一个DataNode的列表给客户端来写入数据。上图中是三个,也就是数据冗余三份。数据冗余的复制是在DataNode之间完成的。(步骤3,4,5

然后把一个block的数据分片(packet),放入一个数据发送队列进行发送。

 

3. 发送出去的packet会移入一个回执队列(防止丢数据)。当客户端收到全部写入成功的回执(ack packet)之后,这时会把回执队列中相应的packet删掉。

 

4. packet写入失败怎么办? 如果有一个节点写入失败,则停止当前流水线,把回执队列中的所有数据加到数据队列之前,保证不丢数据。重新分配一个流水线来写入数据。

 

*可以设置一个dfs.replication.min。代表一个block至少被写入几个节点就算成功,默认值是1,就是说只要一个block被写入1个datanode就算写入成功了。随后HDFS会自动把这个block拷贝到3个可用的节点上去。

 

 

  • 大小: 32.1 KB
  • 大小: 61.2 KB
分享到:
评论
2 楼 spark_li 2015-05-29  
wantodare 写道
对于这句
引用
3. 当客户端收到全部写入成功的回执(ack packet)之后,这时会把队列中上一个Block的数据删掉。然后进行下一个Block的写入。

数据块的写入是以流水线的形式传输的,当前副本在写入第一个datanode后,第一个datanode会继续把副本往下一个datanode拷贝传输,但此时下一个副本也同时写入其datanode列表的第一个datanode,而不是在客户端全部写入第一个block所有副本后才进行下一个block的传输


这里我没有写清楚,这里不是block,是packet。
整个流程是一个写block的过程。
1 楼 wantodare 2013-11-17  
对于这句
引用
3. 当客户端收到全部写入成功的回执(ack packet)之后,这时会把队列中上一个Block的数据删掉。然后进行下一个Block的写入。

数据块的写入是以流水线的形式传输的,当前副本在写入第一个datanode后,第一个datanode会继续把副本往下一个datanode拷贝传输,但此时下一个副本也同时写入其datanode列表的第一个datanode,而不是在客户端全部写入第一个block所有副本后才进行下一个block的传输

相关推荐

    3.Hadoop学习笔记.pdf

    Hadoop还涉及文件存储的模型,包括文件的线性切割、块的偏移量、块在集群节点中的分布存储、副本数设置以及追加数据的方式。Hadoop架构强调主从模式,即NameNode作为主节点管理元数据,DataNode作为从节点存储数据块...

    Hadoop学习笔记

    这个“Hadoop学习笔记”涵盖了Hadoop生态系统中的核心组件,包括HDFS(Hadoop分布式文件系统)、HBase(一个分布式、列式存储的数据库)、Hive(数据仓库工具)以及Spark(一个快速、通用且可扩展的数据处理引擎)。...

    hadoop学习笔记

    《Hadoop学习笔记》 Hadoop,作为大数据处理的核心框架,是开源社区的杰作,由Apache软件基金会维护。这份文档旨在深入解析Hadoop的基本概念、架构及其在大数据处理中的应用,帮助读者全面掌握这一重要技术。 一、...

    hadoop笔记打包下载(想学hadoop不下载后悔)

    集群的管理和配置是Hadoop学习中的重要环节,包括节点间通信设置、资源调度策略等。 3. **MapReduce**: MapReduce是Hadoop的并行计算模型,它将大型数据集分割成小块,并在多台机器上并行处理。Map阶段将原始数据...

    大数据知识点Hadoop详细笔记

    Hadoop 详细笔记 本知识点总结了 Hadoop 的基本概念、特征、架构和组件,以及 HDFS 的...本知识点总结了 Hadoop 的基本概念、特征、架构和组件,以及 HDFS 的设计和读写流程,为学习 Hadoop 和大数据分析奠定了基础。

    hadoop- w3c 学习笔记

    NameNode 是 HDFS 的元数据管理节点,存储文件的元信息,而 DataNode 是实际存储数据的节点,它们负责数据的读写和复制操作。 MapReduce 是一种分布式计算模型,它将大规模数据处理任务分解成可并行执行的小任务...

    hadoop,hive,hbase学习资料

    HDFS简介.doc**、**Hadoop学习总结之四:Map-Reduce的过程解析.doc**、**Hadoop学习总结之五:Hadoop的运行痕迹.doc**、**Hadoop学习总结之二:HDFS读写过程解析.doc**:这些文档详细介绍了Hadoop分布式文件系统...

    Hadoop之HBase学习笔记

    【标题】"Hadoop之HBase学习笔记"主要聚焦于Hadoop生态中的分布式数据库HBase。HBase是一个基于Google Bigtable理念设计的开源NoSQL数据库,它运行在Hadoop之上,提供高性能、高可靠性以及可水平扩展的数据存储能力...

    传智黑马赵星老师hadoop七天课程资料笔记-第二天(全)

    标题和描述中提到的是“传智黑马赵星老师hadoop七天课程资料笔记-第二天(全)”,这表明这是一个关于Hadoop技术的深度学习资源,主要聚焦于赵星老师的Hadoop教学课程中的第二天内容。通常,这样的课程会涵盖Hadoop的...

    hadoop3.1.3学习资料

    这个学习资料包含的"笔记"可能涵盖了Hadoop的核心组件、生态系统、安装配置以及实际操作等多个方面。以下是对Hadoop 3.1.3的一些关键知识点的详细说明: 1. **Hadoop核心组件**: - **HDFS(Hadoop Distributed ...

    大数据学习笔记.zip

    大数据学习笔记.zip是一个压缩包,其中包含了关于大数据技术的学习资料,特别是聚焦于Hadoop、HBase、Kafka和Flume这四个重要组件。这些技术都是大数据处理和分析领域中的核心工具,广泛应用于海量数据的存储、实时...

    hadoop笔记

    这个“hadoop笔记”可能包含了关于Hadoop生态系统、Hadoop分布式文件系统(HDFS)、MapReduce编程模型、YARN资源管理器以及相关工具的详细学习记录。现在,让我们深入探讨一下这些关键知识点。 1. Hadoop生态系统:...

    完整图文版 阿里巴巴数据产品平台 大数据与云计算技术系列教程 Hadoop之Hive学习笔记(共63页).pdf

    **Hive学习笔记** Hive是由阿里巴巴数据产品平台推出的一款基于Hadoop的大数据处理工具,主要服务于大数据与云计算技术领域。Hive的核心是提供了一种类SQL(HQL)的查询语言,使得熟悉SQL的开发者能够方便地进行大...

    Hadoop使用笔记

    - TensorFlow是由谷歌开发的开源机器学习库,用于进行深度学习的研究,虽然不是Hadoop生态系统的一部分,但在AI领域得到了广泛应用。 - Weka是一个数据挖掘项目,提供一套机器学习算法,用于数据挖掘任务,包括数据...

    Hadoop学习几笔

    这个“Hadoop学习几笔”的资源可能包含了对Hadoop生态系统中的几个关键组件的深入理解和实践笔记,包括HDFS(Hadoop分布式文件系统)、HBase(一个分布式、列式存储的NoSQL数据库)、Hive(一个数据仓库工具)以及...

    尚硅谷大数据技术之Hadoop

    2. HDFS(Hadoop Distributed File System):讲解Hadoop的分布式文件系统,包括数据块的概念、NameNode和DataNode的角色、数据读写过程、HDFS的副本策略等。 3. MapReduce原理与编程模型:深入解析Map函数和Reduce...

    学习笔记zzzzz.zip

    【学习笔记zzzzz.zip】是一个包含Hadoop学习资料的压缩包,标签为“hadoop”,暗示了这个压缩包中的内容主要围绕着大数据处理框架Hadoop进行展开。Hadoop是Apache软件基金会的一个开源项目,其核心是分布式文件系统...

Global site tag (gtag.js) - Google Analytics