Hadoop分布式文件系统HDFS 是一种被设计运行在任何通用硬件上的分布式文件系统。是一个高度容错性的系统,适合部署在廉价的机器上,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
1、分布式文件系统
N台计算机联网协同工作,就像单台系统一样解决问题,也就是说它们可以横跨多台计算机的存储系统,存储在分布式系统上的数据自动分布在不同的节点上。
分布式文件系统在大数据时代具有广泛的应用前景,它们为储存和处理来自网络和其他地方超大规模数据提供所需的扩展能力。
2、分离元数据和数据 NameNode 和 DataNode
存储到文件系统中的每一个文件都有相关联的元数据。元数据包括文件名、i节点数、数据块位置;而数据则是文件的实际内容。
在传统的文件系统里,因为文件系统不会跨越多台机器,那么元数据和数据都存储在同一台机器上。
因而为了构建一个分布式文件系统,让客户端在这种系统中使用简单,并且并不需要知道其他客户端的活动,那么元数据需要在客户端之外维护。HDFS的设计理念就是拿出一台或者多台机器来保存元数据,并让剩下的机器来保存文件的内容。NameNode和DataNode是HDFS的两个主要组件。其中元数据存放在NameNode上,而数据存在DataNode的集群上,NameNode不仅要关联存在HDFS上的内容元数据,而且要记录一些事情,比如那些节点是集群的一部分,某个文件有几分备份等。它还要决定当集群的节点宕机或数据副本丢失时系统需要做什么。
存储在HDFS上的每一份数据片有多份副本(replication)在不同的服务器上,从本质上,NameNode是HDFS的主服务器(master),DataNode是slave(从服务器)。
3、HDFS写过程
NameNode负责管理存储在HDFS上的所有文件的元数据,它会确认客户端的请求,并记录下文件的名称和存储这个文件的DataNode集合,把该信息在内存中的文件分配表里进行存储。
举个栗子:
客户端发送一个请求给NameNode,将test.log文件写入HDFS中,具体的流程
1、客户端发送消息给NameNode,说要将“test.log”文件写入
2、NamdNode发送消息给客户端,叫客户端写到DataNodeA、B和D,并直接联系DataNodeB
3、客户端发送消息给DataNode B叫他保存一份“test.log”,并将一份副本给DataNode D
4、DataNode A发送消息给DatanNode D,并发送一份副本给DataNode D
5、DataNode A发送消息给DataNode D,保存文件
6、DataNode D发送确认信息给DataNode A
7、DataNode A 发送信息给DataNode B
8、DataNode B发送确认消息给客户端,即为写入成功
--------------------------------------------------------------------------------------------------------------------------------
对于iteye真的表示无语。。。。。。。
相关推荐
hadoop HDFS学习课件,根据hadoop权威指南和apache官网参考手册整理。整个PPT比较大,教学时需要拆分使用
Hadoop分布式文件系统HDFS的实战,需要的Hdfs.java文件 public static void main(String[] args) throws Exception { //上传文件到hadoop uploadFile(); createFile(); createDir(); fileRename(); deleteFile...
// 获取HDFS文件系统对象 FileSystem fs = FileSystem.get(new URI(hdfsUri), conf); // 创建HDFS上的目标路径 Path dst = new Path(hdfsFilePath); // 上传文件 fs.copyFromLocalFile(new Path(localFilePath...
分布式文件系统hdfs
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)作为这类系统的一个重要代表,其设计理念和实现细节具有典型的研究和应用价值。 分布式文件系统的一个关键特点是基于计算机集群结构,它能够将大规模...
Hadoop分布式配置文件hdfs-site.xml,用于在搭建Hadoop分布式集群时,设置集群规划所用,集群中虚拟机都需要修改该配置文件,除此之外,还需要修改其他配置文件,包括core-site.xml、mapred-site.xml和yarn-site.xml...
首先介绍分布式文件系统的基本概念、结构和设计需求,然后介绍Hadoop分布式文件系统HDFS,详细阐述它的重要概念、体系结构、存储原理和读写过程,最后,介绍了一些HDFS编程实践方面的知识
《高可用性的HDFS——Hadoop分布式文件系统深度实践》专注于Hadoop分布式文件系统(hdfs)的主流ha解决方案,内容包括:hdfs元数据解析、hadoop元数据备份方案、hadoop backup node方案、avatarnode解决方案以及最新...
hadoop-hdfs Hadoop分布式文件系统hdfs代码分析目录介绍Datanode-数据块基本结构主要介绍了HDFS中第二关系块结构,数据块到数据中断的映射关系。退役-中断退款主要介绍了数据异步下线取消机制。INode-文件目录结构...
HDFS概述与架构 HDFS(Hadoop Distributed File System)是...HDFS是一种高效、可靠的分布式文件系统,非常适合大数据处理和批处理应用。但是,它也存在一些缺点和限制,需要根据实际情况选择合适的存储解决方案。
Hadoop分布式文件系统(HDFS)是为处理大规模数据而设计的一种可扩展、可靠的分布式文件系统。本文将深入探讨其架构和设计的核心要点。 首先,HDFS的设计目标是针对硬件错误的常态,强调错误检测和快速恢复。由于...
### Hadoop分布式文件系统(HDFS):关键技术与实践 #### 摘要 Hadoop分布式文件系统(HDFS)是Hadoop项目的核心组件之一,旨在为大规模数据集提供高效可靠的存储解决方案。HDFS的设计原则强调了数据的分布式存储与...
Hadoop分布式文件系统架构和设计 Hadoop分布式文件系统是Hadoop生态系统的核心组件之一,负责存储和管理大规模数据集。下面将对Hadoop分布式文件系统的架构和设计进行详细介绍。 一、前提和设计目标 Hadoop分布式...
【Hadoop分布式文件系统】(HDFS)是一个专为运行在通用硬件上的分布式文件系统,设计目标是处理大规模数据集并提供高吞吐量的数据访问。HDFS在设计时考虑了硬件错误的常态,强调了容错性和快速的错误恢复机制,使其...
Hadoop 大数据开发实战教学教案—03HDFS 分布式文件系统.pdf 本节课程主要介绍 HDFS 的概念、HDFS 存储架构和数据读写流程、HDFS 的 Shell 命令、Java 程序操作 HDFS、Hadoop 序列化、Hadoop 小文件处理、通信机制 ...
3. Hadoop分布式爬虫设计:Hadoop分布式爬虫设计是基于Hadoop分布式文件系统HDFS及其分布式计算框架MapReduce的基础上开发的分布式搜索引擎的爬虫设计相关技术、原理、流程图。 二、分布式爬虫技术原理 1. ...
#### Hadoop分布式文件系统(HDFS)概述 Hadoop分布式文件系统(HDFS)是Hadoop项目的核心组件之一,主要用于存储和管理大规模数据集。它提供了一种高容错性的文件存储方式,并且能够为大数据应用提供高吞吐量的...