下图是HDFS读取文件的流程:
这里是详细解释:
1.当客户端开始读取一个文件时,首先客户端从NameNode取得这个文件的前几个block的DataNode信息。(步骤1,2)
2.开始调用read(),read()方法里,首先去读取第一次从NameNode取得的几个Block,当读取完成后,再去NameNode拿下一批Block的DataNode信息。(步骤3,4,5)
3. 调用Close方法完成读取。(步骤6)
当读取一个Block时如果出错了怎么办呢。客户端会去另一个最佳的DataNode上读取这个块,并通知NameNode。
这么一系列复杂的过程对客户端都是透明的。客户端只知道源源不断的从Stream中读取数据。
写入文件:
1. 首先客户端高速NameNode:”我要创建一个文件”。NameNode会进行一系列检查,比如文件是否存在。一旦通过检查,则创建一个文件。这时候客户端就可以写入数据了。(步骤1,2)。如果文件大于一个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个可用的节点上去。
相关推荐
Hadoop还涉及文件存储的模型,包括文件的线性切割、块的偏移量、块在集群节点中的分布存储、副本数设置以及追加数据的方式。Hadoop架构强调主从模式,即NameNode作为主节点管理元数据,DataNode作为从节点存储数据块...
这个“Hadoop学习笔记”涵盖了Hadoop生态系统中的核心组件,包括HDFS(Hadoop分布式文件系统)、HBase(一个分布式、列式存储的数据库)、Hive(数据仓库工具)以及Spark(一个快速、通用且可扩展的数据处理引擎)。...
《Hadoop学习笔记》 Hadoop,作为大数据处理的核心框架,是开源社区的杰作,由Apache软件基金会维护。这份文档旨在深入解析Hadoop的基本概念、架构及其在大数据处理中的应用,帮助读者全面掌握这一重要技术。 一、...
集群的管理和配置是Hadoop学习中的重要环节,包括节点间通信设置、资源调度策略等。 3. **MapReduce**: MapReduce是Hadoop的并行计算模型,它将大型数据集分割成小块,并在多台机器上并行处理。Map阶段将原始数据...
Hadoop 详细笔记 本知识点总结了 Hadoop 的基本概念、特征、架构和组件,以及 HDFS 的...本知识点总结了 Hadoop 的基本概念、特征、架构和组件,以及 HDFS 的设计和读写流程,为学习 Hadoop 和大数据分析奠定了基础。
NameNode 是 HDFS 的元数据管理节点,存储文件的元信息,而 DataNode 是实际存储数据的节点,它们负责数据的读写和复制操作。 MapReduce 是一种分布式计算模型,它将大规模数据处理任务分解成可并行执行的小任务...
HDFS简介.doc**、**Hadoop学习总结之四:Map-Reduce的过程解析.doc**、**Hadoop学习总结之五:Hadoop的运行痕迹.doc**、**Hadoop学习总结之二:HDFS读写过程解析.doc**:这些文档详细介绍了Hadoop分布式文件系统...
【标题】"Hadoop之HBase学习笔记"主要聚焦于Hadoop生态中的分布式数据库HBase。HBase是一个基于Google Bigtable理念设计的开源NoSQL数据库,它运行在Hadoop之上,提供高性能、高可靠性以及可水平扩展的数据存储能力...
标题和描述中提到的是“传智黑马赵星老师hadoop七天课程资料笔记-第二天(全)”,这表明这是一个关于Hadoop技术的深度学习资源,主要聚焦于赵星老师的Hadoop教学课程中的第二天内容。通常,这样的课程会涵盖Hadoop的...
这个学习资料包含的"笔记"可能涵盖了Hadoop的核心组件、生态系统、安装配置以及实际操作等多个方面。以下是对Hadoop 3.1.3的一些关键知识点的详细说明: 1. **Hadoop核心组件**: - **HDFS(Hadoop Distributed ...
大数据学习笔记.zip是一个压缩包,其中包含了关于大数据技术的学习资料,特别是聚焦于Hadoop、HBase、Kafka和Flume这四个重要组件。这些技术都是大数据处理和分析领域中的核心工具,广泛应用于海量数据的存储、实时...
这个“hadoop笔记”可能包含了关于Hadoop生态系统、Hadoop分布式文件系统(HDFS)、MapReduce编程模型、YARN资源管理器以及相关工具的详细学习记录。现在,让我们深入探讨一下这些关键知识点。 1. Hadoop生态系统:...
**Hive学习笔记** Hive是由阿里巴巴数据产品平台推出的一款基于Hadoop的大数据处理工具,主要服务于大数据与云计算技术领域。Hive的核心是提供了一种类SQL(HQL)的查询语言,使得熟悉SQL的开发者能够方便地进行大...
- TensorFlow是由谷歌开发的开源机器学习库,用于进行深度学习的研究,虽然不是Hadoop生态系统的一部分,但在AI领域得到了广泛应用。 - Weka是一个数据挖掘项目,提供一套机器学习算法,用于数据挖掘任务,包括数据...
这个“Hadoop学习几笔”的资源可能包含了对Hadoop生态系统中的几个关键组件的深入理解和实践笔记,包括HDFS(Hadoop分布式文件系统)、HBase(一个分布式、列式存储的NoSQL数据库)、Hive(一个数据仓库工具)以及...
2. HDFS(Hadoop Distributed File System):讲解Hadoop的分布式文件系统,包括数据块的概念、NameNode和DataNode的角色、数据读写过程、HDFS的副本策略等。 3. MapReduce原理与编程模型:深入解析Map函数和Reduce...
【学习笔记zzzzz.zip】是一个包含Hadoop学习资料的压缩包,标签为“hadoop”,暗示了这个压缩包中的内容主要围绕着大数据处理框架Hadoop进行展开。Hadoop是Apache软件基金会的一个开源项目,其核心是分布式文件系统...