HDFS概述(一)

1. HDFS产出的背景及定义

1.1 HDFS产生的背景

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。

1.2 HDFS的定义

HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

HDFS的使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。

2. HDFS的优缺点

2.1 优点:

1). 高容错性

(1)数据自动保存多个副本,它通过增加数据副本的样式,提高容错性

(2)某一个数据副本丢失以后,它可以自动恢复

2) 适合处理大数据

(1)数据规模:能够处理规模达到GB、TB、甚至PB的级的大数据 ;

3) 可构建在廉价机器上,通过多副本机制,提高可靠性。

2.2 缺点

1)不适合低时延的数据访问;

2)无法高效的对大量小文件进行存储:

(1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件的目录和块信息;

(2)小文件的存储的寻址时间超过了读取时间,违反了HDFS的设计目标。

3)不支持并发的写入、文件随机修改

(1)一个文件只能有一个写,不允许多个线程同时写;

(2)仅支持数据的append(追加),不支持文件的随机修改

3. HDFS的组成架构

3.1 整体架构图如下:

3.2 HDFS架构详解

1)NameNode(简称:ND):就是master,它是一个主管人员,负责管理HDFS的相关信息:

(1)管理HDFS的名称空间;

(2)管理副本的策略;

(3)管理数据块(Block)的映射信息;

(4)处理客户端的读写请求。

2)DataNode(简称:DN):就是slave,NameNode下达指令,DataNode执行实际的操作:

(1)存储实际的数据块;

(2)执行数据块的读/写操作。

3)Client:客户端,与NameNode交互的程序,职责或功能如下:

(1)文件切分:在上传文件至HDFS的时候,Client会将文件分切成一个个的Block上传;

(2)与NameNode交互,可以获取文件的位置信息(存在哪个节点上)

(3)Client可以通过一些命令来访问HDFS,比如增删改查操作;

(4)Client通过一些命令来管理HDFS,比如将NameNode格式化。

4)SecondaryNameNode:并非是NameNode的热备。当NameNode挂掉的时候,它并不会立即替换NameNode并提供服务。

(1)辅助NameNode,分担其工作量,比如定期合并FsImage和Edits(后边会讲到,这里不用理解),并将合并后的FsImage.checkPoint推送给NameNode;

(2)在紧急情况下可以辅助恢复NameNode。

4 HDFS的文件块大小

1)HDFS中的文件在物理上是按照块(Block)存储的,块id大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x的版本中是128M,老版本的是64M。

2)块的大小设定:文件的寻址时间应为块文件的传输时间的1%,这是比较合理的设定。

3)思考:为什么块的大小不能设置太小,也不能设置太大?

(1)HDFS的块如果设置的太小,会增加寻址时间,程序长时间在寻找块的存储位置;

(2)如果设置太大,从磁盘传输的时间会明显大于定位这个块的起始位置所需的时间。导致在处理这个块的数据时,浪费了大量的时间在IO上。

因此,块的大小可以根据数据量和磁盘的IO速度决定如何设置。

原文地址:https://www.cnblogs.com/simon-1024/p/11741184.html

时间: 2024-08-13 07:31:05

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的内存(记录了文件的位置等信息):再者,在文件处理时,可能会有较大的网络开销.] 一个常

HDFS概述

该文章参考 Hadoop权威指南 引言 随着数据爆炸式增长,数据的存储和分析作为一个大的难题.多年来硬盘存储容量增长的同时,访问速度-数据从硬盘读取的速度,未内与时俱进.比如1990年, 一个磁盘存储1370M需要4.4MB/s的速度,我们只需5分钟就能读取整个磁盘的 数据.20年过去了,1TB(=1024GB)级别的磁盘驱动器很正常.传输的速度在100MB/s左右, 因此需要2个半小时以上的时间才能读取整个驱动器的数据.从一个磁盘驱动器读取所有数据需要花那么长时间,写更慢.一个简单的解决方法是

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