HDFS概述

该文章参考 Hadoop权威指南

引言

随着数据爆炸式增长,数据的存储和分析作为一个大的难题。多年来硬盘存储容量增长的同时,访问速度-数据从硬盘读取的速度,未内与时俱进。比如1990年, 一个磁盘存储1370M需要4.4MB/s的速度,我们只需5分钟就能读取整个磁盘的

数据。20年过去了,1TB(=1024GB)级别的磁盘驱动器很正常。传输的速度在100MB/s左右, 因此需要2个半小时以上的时间才能读取整个驱动器的数据。从一个磁盘驱动器读取所有数据需要花那么长时间,写更慢。一个简单的解决方法是

同时从多个磁盘读取时间,试想如果100个磁盘,每个磁盘存储1%的数据,如果并行运行,我们不到2分钟时间就可以读取所有数据。但是面临很多问题。

第一个问题,硬件故障,硬件设施增加,出现故障概率会增加。

第二个问题,大部分任务需要通过某种方式将数据合并起来,分布式系统能够组合多个数据源信息,如何保证正确性是个非常难的挑战。

为此,hadoop的hdfs,分布式文件系统有什么好处?

第一,一个文件可以大于网络上任意一个磁盘容量,不需要存储在一个磁盘上,可以分块利用集群从存储任意一个磁盘上。

第二, 利用块抽象单元而不是文件简化存储子系统,比如说传统文件系统每个文件都会带有文件名,文件大小等信息,导致元数据冗余。

第三, 如果块损坏以及磁盘故障,每个块在少数其他机器上进行复制,如果一个块损坏还可以再其他机器读取副本。

为什么HDFS中的块设置为128M?

HDFS的块比磁盘的大,目的是为了减少寻址的开销,通过一个块足够大,从磁盘转移数据的时间能够远大于定位这个块开始端的时间,因此传送一个由多个块组成的文件时间取决于磁盘传输速率。

如果寻址时间是10毫秒左右,传输速率是100M/s,为了使寻址时间为传输时间的1%,我们需要100M左右大小,考虑到其他因素HDFS设置为128M的块,这一个数字将以后随着新一代磁盘传输速度加快而做调整。

在实际生产情况下,如果CPU性能差,也就是寻址时间比较慢,block文件要加大。如果带宽比较小,CPU性能比较好,block文件要调小。

什么叫做元数据?

元数据(Meta Data), 又称中介数据, 中继数据,为描述数据的数据(data about data),主要是为了描述数据属性(property)信息, 用来支持如指示数据的存储位置,历史数据,资源查找,文件记录等功能。

数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。

HDFS的架构

HDFS集群有两个节点,以管理者-工作者的模式进行,即一个名称节点(NameNode)管理者和多个数据节点(DataNode)工作者。

1. 名称节点NameNode 

  • 管理文件的命名空间,以“/"为根目录
  • 管理管路目录树上的文件元数据信息。元数据持久化到磁盘上:fsimage文件和edits文件(记录操作日志)。NameNode接到客户端对文件读写操作,首先更改内存里面元数据信息,然后把操作记录到edits文件里面。
  • 接受客户端对文件的控制访问,比如更改文件名,权限等。
  • 接受客户端对文件的读写请求,但不是真正执行读写操作。
  • 接受DataNode的心跳信息,维护集群上的DataNode列表。
  • 接收DataNode上报存储的块列表。

NameNode的启动过程:

2. 数据节点DataNode

3. 辅助节点SecondaryNameNode,checkPoint检查点节点

    合并流程:

HDFS写文件流程

HDFS读文件流程

时间: 2024-10-21 14:02:14

HDFS概述的相关文章

HDFS概述(2)————Block块大小设置

参考: HDFS概述(4)----HDFS权限 HDFS概述(3)----HDFS Federation HDFS概述(1)----HDFS架构 问题 Q: 一个常被问到的一个问题是: 如果一个HDFS上的文件大小(file size) 小于块大小(block size) ,那么HDFS会实际占用Linux file system的多大空间? A: 答案是实际的文件大小,而非一个块的大小. 以下内容转自: http://blog.csdn.net/samhacker/article/detail

Hadoop之HDFS(概述和Shell操作)

HDFS概述 HDFS组成架构 HDFS文件块大小   HDFS的Shell操作(开发重点) 1.基本语法 bin/hadoop fs 具体命令   OR  bin/hdfs dfs 具体命令 dfs是fs的实现类. 2.命令大全 $ bin/hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <src> ...] [-chgrp [-

HDFS概述---namenode的设计详解

HDFS的设计概述: NameNode的设计 维护名字空间,是HDFS中文件目录和文件分配的管理者. 保存的重要信息如下: 文件名 ----> 数据块        ,NameNode在其本地磁盘上保存为文件(持久化) 对目录树和文件名的更新-->数据块, 使用操作日志来保存更新. 数据块 ----> DataNode列表  ,NameNode不存,通过DataNode上报建立起来. 一个HDFS集群上可能包含成千个DataNode节点,这些DataNode定时和NameNode通信,接

HDFS概述(5)————HDFS HA

HA With QJM 目标 本指南概述了HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS集群. 本文档假设读者对HDFS集群中的一般组件和节点类型有一般的了解.有关详细信息,请参阅HDFS架构指南. 本指南讨论如何使用Quorum Journal Manager(QJM)配置和使用HDFS HA,以在Active和Standby NameNodes之间共享编辑日志 背景 在Hadoop 2.0.0之前,NameNode是

HDFS概述(1)————Block块大小设置

以下内容转自:http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=referral http://snglw.blog.51cto.com/5832405/1643587 小文件BLOCK占用 [小于块大小的小文件不会占用整个HDFS块空间.也就是说,较多的小文件会占用更多的NAMENODE的内存(记录了文件的位置等信息):再者,在文件处理时,可能会有较大的网络开销.] 一个常

2016/06/27 HDFS概述

1.初识HDFS     HDFS作为一个分布式文件系统,具有高容错的特点,它可以部署在廉价的通用硬件上,提供高吞吐率的数据访问(吞吐率:是对一个系统和它的部件处理传输数据请求能力的总体评价),适合那些需要处理海量数据集的应用程序. 1.1 HDFS主要特性 支持超大文件.超大文件在这里指的是几百MB,几百GB甚至几TB大小的文件,一般来说,一个Hadoop文件系统会存储T(1TB = 1024GB).P(1P = 1024T)级别的数据.Hadoop需要能够支持这种级别的大文件. 检测和快速应

第六章 HDFS概述

6.1.2 HDFS体系结构 HDFS采用主从结构,NameNode(文件系统管理者,负责命名空间,集群配置,数据块复制), DataNode(文件存储的基本单元,以数据块形式保存文件内容和数据块的数据校验信息,执行底层数据块IO操作), Client(和名字节点,数据节点通信,访问HDFS文件系统,操作文件), SecondaryNameNode 1.数据块 Linux的Ext3块默认的大小4096字节,HDFS块默认64M,副本数为3,数据块的好处:文件保存在不同的磁盘上,简化存储子系统,方

大数据-Hadoop生态(5)-HDFS概述

HDFS产生背景 HDFS优缺点 HDFS组成架构 HDFS文件块大小 原文地址:https://www.cnblogs.com/duoduotouhenying/p/10084446.html

HDFS概述(一)

1. HDFS产出的背景及定义 1.1 HDFS产生的背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统.HDFS只是分布式文件管理系统中的一种. 1.2 HDFS的定义 HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器