Hadoop分布式文件系统即Hadoop Distributed FileSystem。
当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区(Partition)并存储到若干台单独的计算机上,管理网络中跨越多台计算机存储的文件系统成为分布式文件系统(Distributed FileSystem)。
该系统架构与网络之上,势必引入网络编程的复杂性,因此分布式文件系统比普通磁盘文件系统更为复杂。例如:使文件系统能够容忍节点故障且不丢数据便是一个极大的挑战。
Hadoop有一个成为HDFS的分布式文件系统,即Hadoop Distributed FileSystem。在非正式的文档或旧的文档中也叫着做DFS。HDFS是Hadoop的旗舰级文件系统,它实际上是一个综合性的文件系统的抽象。例如还可以集成其他文
件系统如Amazon S3或本地文件系统。
HDFS以流式数据访问模式来存储超大文件,运行在商用硬件集群上,特点如下:
1、超大文件存储
“超大文件”在这里指具有即便MB、几百GB、几百TB大小的文件,目前已经有了存储PB级别数据的Hadoop集群。(全球最大的Hadoop集群在雅虎,有大约25,000个节点,主要用于支持广告系统与网页搜索。)
2、流式数据访问
HDFS的构建思路是一次写入,多次读取是最高效的访问模式。数据集通常由数据源生成或从数据源复制而来,接着长时间在此数据集上进行各种分析。每次分析都将涉及该数据集的大部分或全部,因此读取整个数据集
的时间延迟比读取第一条记录的时间延迟更重要。
3、商用硬件
Hadoop并不需要运行在昂贵且高可靠的硬件上。它是设计在普通硬件的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS在遇到上述故障时,被设计成能够继续运行且不让用户察觉到明显
的中断。同样那些不适合在HDFS上运行的应用也值得研究。目前对实时性要求较高的应用不适合在HDFS上运行。
4、低时间延迟的数据访问
要求低时间延迟数据访问的应用,例如及时毫秒范围不适合在HDFS上运行。因为HDFS是为高吞吐量应用优化的,这可能会以提高时间延迟为代价。目前对于低延迟时间的访问需求,HBase是更好的选择。
5、大量的小文件
由于NameNode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于NameNode的内存容量。根据经验,每个文件、目录和数据块的存储信息大约占150字节,因此举例如果有一百万个文件,且每
个文件占一个数据块,那至少需要300MB内存。尽管存储上百万个文件是可行的的,但是存储数十亿个文件就超出了当前硬件的能力。
6、多用户写入、任意修改文件
HDFS中的文件只能有一个写入,且目前(Hadoop-0.x~Hadoop-2.6.0)只能追加到文件的末尾。不支持多个写入操作,也不支持在文件的任意位置修改操作。
HDFS数据块
每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位。构建于单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块,该文件系统块的大小可以是磁盘块的整倍数。文件系统文件系统块一般为几千字
节,而磁盘块一般为521字节。例如Windos上文件系统的磁盘单位为簇,Linux上文件系统的磁盘单位为block。
HDFS同样有块的概念,但是比较大。在Hadoop-0.x和Hadoop-1.x中默认的块大小为64MB,在Hadoop-2.0及以后的版本中默认的块大小是128MB。与单一磁盘上的文件系统相似,HDFS上的文件也被划分为块大小的多个分块
(chunk),作为独立的存储单元。其他文件系统不同的是,HDFS中小于一个块大小的文件不会占据整个块的空间。HDFS的分块我的理解是逻辑分块,而并非是物理切块。HDFS的块之所以大是为了最小化寻址开销。如果块设
置的足够大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。如果使用更多的时间来传输数据显然比寻址更高效。但是块也不会太大,MapReduce中的map任务通常一次只处理一个块中的数据,如果任务
数太少(少于集群中的节点数量),作业的运行速度就会比较慢。分块非常适合用于数据备份进而提供数据容错的能力和提高可用性。在分布式集群的默认情况下HDFS的块副本数为3个,且每个块分布在不同的节点上。这样
的好处是在磁盘或机器发生故障后数据不会丢失,如果一个块不可用时则去其他节点上读取另一个副本,而这个过程对用户是透明的。一个因为损坏或机器故障而丢失的块可以从其他节点上复制到另一台正常运行的机器上,
以保障副本的数量回到正常水平。同样有些应用程序可能选择为一些常用的文件块设置更高的副本数进而分散集群中的读取负载。
Hadoop分布式文件系统HDFS详解
时间: 2024-10-09 01:54:07
Hadoop分布式文件系统HDFS详解的相关文章
Hadoop分布式文件系统HDFS的工作原理详述
Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储.换句话说,它们是横跨在多台计算机上的存
【转载】Hadoop分布式文件系统HDFS的工作原理详述
转载请注明来自36大数据(36dsj.com):36大数据 » Hadoop分布式文件系统HDFS的工作原理详述 转注:读了这篇文章以后,觉得内容比较易懂,所以分享过来支持一下. Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的 机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也
Hadoop分布式文件系统--HDFS结构分析
转自:http://blog.csdn.net/androidlushangderen/article/details/47377543 HDFS系列:http://blog.csdn.net/Androidlushangderen/article/category/5734703 前言 在Hadoop内部,具体实现了许多类的文件系统,当然最最被我们用到的就是他的分布式文件系统HDFS了.但是本篇文章不会讲HDFS的主从架构等东西,因为这些东西网上和资料书中都讲得很多了.所以,我决定以我个人的学
Hadoop分布式文件系统-HDFS
Hadoop历史 雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. 随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS).GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统. 2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS. 2004年G
对Hadoop分布式文件系统HDFS的操作实践
原文地址:https://dblab.xmu.edu.cn/blog/290-2/ Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是Hadoop核心组件之一,如果已经安装了Hadoop,其中就已经包含了HDFS组件,不需要另外安装. 在学习HDFS编程实践前,执行如下命令,启动Hadoop. 一.利用Shell命令与HDFS进行交互 Hadoop支持很多Shell命令,其中fs是HDFS最常用的命令,利用fs可以查看HDFS文件系统的目录结构
Hadoop分布式文件系统HDFS的工作原理
Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1 .分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储. 换句话说,它们是横跨在多台计算机上
Hadoop分布式文件系统HDFS
HDFS的探究: HDFS HDFS是 Hadoop Distribute File System的缩写,是谷歌GFS分布式文件系统的开源实现,Apache Hadoop的一个子项目,HDFS基于流数据访问模式的分布式文件系统,支持海量数据的存储,允许用户将百千台组成存储集群,HDFS运行在低成本的硬件上,提供高吞吐量,高容错性的数据访问. 优点 可以处理超大文件(TB.PB). 流式数据访问 一次写入多次读取,数据集一旦生成,会被复制分发到不同存储节点上,响应各种数据分析任务请求. 商用硬件
Hadoop分布式文件系统---HDFS重点
介绍: HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. HDFS 设计原理 HDFS 架构 HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成: NameNode : 负责执行有关 文件系统命名空间 的操作,例如打开,关闭.重命名文件和目录等.它同时还负责集群元数据的存储,记录着文件中各个数据块的位置信息. DataNode:负责
mogilefs分布式文件系统搭建详解
MogileFS是一套开源的分布式存储软件,适用于存储海量小文件.由tracker,mogstore,database三个部分组成. Tracker:它通过数据库来保存元数据信息,包括站点domain.class.host等:主要功能包括监控后端Storage节点,及指示Storage节点完成数据的添加.删除.查询,及节点之间数据的复制等. mogstored 实际存储数据的位置,默认监听在7500端口,接受客户端的文件存储请求. database:用来做数据key value 映射,可用my