HDFS的设计】的更多相关文章

本章内容介绍下 Hadoop 自带的分布式文件系统,HDFS 即 Hadoop Distributed Filesystem.HDFS 能够存储超大文件,可以部署在廉价的服务器上,适合一次写入多次读取的场景.但 HDFS 不适合低延迟,存储大量小文件以及修改文件内容的场景.HDFS 应用比较广泛,如:MR任务.Spark任务.Hive 数据仓库以及 Hbase 数据库,它们的底层存储都可以基于 HDFS .本章将介绍 HDFS 集群的架构设计以及相关的重要概念. HDFS的设计以及概念 HDFS…
一.HDFS核心设计 数据块(block) 数据块是HDFS上最基本的存储单位 HDFS块默认大小为128M         对块进行抽象会带来的好处 一个小文件的大小可以大于网络中任意一个磁盘的容量 使用块抽象而不是文件可以简化存储子系统 块非常适合用于数据备份进而提供数据容错能力和可用性 数据块复制 HDFS为了做到可靠性创建多分数据块,MapReduce就可以在他们所在节点上处理这些数据了 HDFS将每个文件存储成块序列 每个文件的block大小和复制因子都是可配置的 HDFS-site.…
原文:http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html 介绍 HDFS是个分布式文件系统,包含几个特点(区别于普通分布式文件系统):高容错.高吞吐.高容错可以使得系统部署在廉价硬件上,而高吞吐则非常适合做大规模数据集的应用. 假设和目标 硬件失效 硬件失效是常态而不是特例.一个HDFS集群可能包含了成百上千的服务器,每个都会存储文件系统的部分数据.而大量的组件就会导致组件出错的…
当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区(partition)并存储到若干台单独的计算机上.管理网络中跨多台计算机存储的文件系统成为分布式文件系统(distributed filesystem).该系统架构于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统比普通磁盘文件系统更为复杂. HDFS的设计 HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上.1. 超大文件超大文件在这里指具有几百MB.几百GB甚至几百TB大小的文件.2. 流式数据访问…
HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件.它将每个文件存储成一系列的数据块,除了最后一个,所有的数据块都是同样大小的.为了容错,文件的所有数据块都会有副本.每个文件的数据块大小和副本系数都是可配置的.应用程序可以指定某个文件的副本数目.副本系数可以在文件创建的时候指定,也可以在之后改变.HDFS中的文件都是一次性写入的,并且严格要求在任何时候只能有一个写入者. Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockre…
这是我收集的两本关于Hadoop的书,高清PDF版,在此和大家分享: 1.<Hadoop技术内幕:深入理解MapReduce架构设计与实现原理>董西成 著  机械工业出版社2013年5月出版 2.<Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理>蔡斌.陈湘萍 著  机械工业出版社2013年4月出版 百度网盘下载地址: http://pan.baidu.com/s/1sjNmkFj…
一.HDFS 的设计思路 1)思路 切分数据,并进行多副本存储: 2)如果文件只以多副本进行存储,而不进行切分,会有什么问题 缺点 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处理,节点可能成为网络瓶颈,很难进行大数据的处理: 存储负载很难均衡,每个节点的利用率很低: 二.HDFS 的设计目标 Hadoop Distributed File System(HDFS):源于Google 的 GFS 论文: 设计目标 分布式存储:根据需要,水平横向增加节点: 运行在普通廉价的硬…
前面对 HDFS NameNode 和 DataNode 的架构设计实现要点做了介绍,本文对 HDFS 最后一个主要构成组件 Client 做进一步解析. 流式读取 HDFS Client 为客户端应用提供一种流式读取模型,就像访问本机文件系统一样来访问 HDFS.将复杂的分布式文件系统读取细节隐藏,简化了上层应用的使用难度.写过读取本机文件的程序员想必都很熟悉流式读取的编程模型,就不多说了. 错误处理 相比读取本机文件系统,从分布式文件系统读取出错概率会更高.因此 HDFS Client 提供…
前文分析了 NameNode,本文进一步解析 DataNode 的设计和实现要点. 文件存储 DataNode 正如其名是负责存储文件数据的节点.HDFS 中文件的存储方式是将文件按块(block)切分,默认一个 block 64MB(该大小可配置).若文件大小超过一个 block 的容量可能会被切分为多个 block,并存储在不同的 DataNode 上.若文件大小小于一个 block 的容量,则文件只有一个 block,实际占用的存储空间为文件大小容量加上一点额外的校验数据.也可以这么说一个…
接前文 分布式存储-HDFS 架构解析,我们总体分析了 HDFS 架构的主要构成组件包括:NameNode.DataNode 和 Client.本文首先进一步解析 HDFS NameNode 的设计和实现要点. 元数据持久化 NameNode 将所有元信息以特定的数据结构组织存放在内存中,对于 namespace 和 replication factor 的信息会进行持久化,而映射关系则不会持久化.因为映射关系是通过 DataNode 启动后定时汇报上来,即使 NameNode 重启后内存信息丢…