HDFS定义和架构

Posted 大数据花院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS定义和架构相关的知识,希望对你有一定的参考价值。


 Hadoop是一个分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,
轻松实现大规模数据的分布式存储和分布式程序的快速开发,充分利用集群的威力进行大数据的高速存储与运算。
Hadoop分布式文件系统(HDFS)扮演者非常重要的大数据存储作
用,它以文件的形式为上层应用海量数据存储服务,并实现高可靠性,高容错性,高扩展性等特点


HDFS的核心思想:分而治之


01



HDFS的必要性




(1)文件系统处理问题的思路

HDFS以流处理访问模式来存储文件,也就是不随机存取文件的一部分。

读写模式:一次写入,多次读取

数据源通常由源生成或从数据源直接复制而来,接着长时间在此数据集上进行各类分析,大数据不需要搬来搬去

(2)HDFS 流处理方式

DFS使用流处理方式处理文件,每个文件在系统里都能找到它的本地化映像(只需要从DFS里读取)


(3)HDFS文件校验方式

分片冗余,本地校验
数据冗余式存储,直接将多份的分片文件交给分片后的存储服务器去校验

(4)HDFS文件容错方式

冗余分片文件具有容错能力,只要冗余的分片文件中有一份是完整的,经过多
次协同调整后,其他分片文件可保证完整。

经过协调校验,无论是传输错误,I/O错误,还是个别服务器宕机,整个系统里
的文件是完整的。



02


HDFS的特点


(1)运行在廉价的服务器上

HDFS设计理念之一就是让它能运行在普通的硬件之上,即便硬件出现故障,
也可以通过容错策略来保证数据的高可用。

(2)存储超大文件

这里的”超大文件”是指几百MB、GB甚至TB级别的文件

(3)流式数据访问

“一次写入、多次读取”,一个数据集旦由数据源生成,就会被复制分发到不同
的存储节点中,然后响应各种各样的数据分析任务请求。HDFS处理的应用- -般是
批处理,而不是用户交互式处理,注重的是数据的吞吐量而不是数据的访问速度。



(4)集群规模动态扩展高容错

节点动态加入到集群,可以数百数千个。普通计算机上结点故障是正常的事情,
HDFS将数据自动保存多个副本,副本丢失后,自动恢复,实现数据的高容错性。



03

HDFS的缺点


(1)实时性差

要求低时间延迟的应用不适合在HDFS上运行,HDFS是为高数据吞吐量应用而优化的,这可能会以高时间延迟为代价

(2)小文件问题

由于NameNode将文件系统的元数据存储在内存中,因此该文件系统所
能存储的文件总量受限于NameNode的内存总容量。

(3)文件修改问题;

HDFS中的文件只有一个写入者,而且写操作总是将数据添加在文件的末尾,
HDFS不支持具有多个写入者的操作,也不支持在文件的任意位置进行修改。



04

HDFS的元数据包括


(1)文件系统目录树信息

    文件名,目录名

    文件和目录的从属关系
    文件和目录的大小,创建及最后访问时间权限

(2)文件和块的对应关系

    文件由哪些块组成

(3)块的存放位置

    机器名,块ID


元数据存储在一台指定的服务器上(Name Node)
实际数据存储在集群的其他机器的本地文件系统中(DataNode)

04

HDFS的基本概念




NameNode    用来管理文件系统命名空间的组件

DataNode    块的时间数据存放在DataNode上,每个块会在本地文件系统产生两个文件,一个实际的数据文件,另一个是快的附加信息文件(包括数据的校验和生成时间)

HDFS客户端    需要访问HDFS文件服务的用户或应用(命令行客户端,API客户端)

Secondary NameNode    不是备份节点,而是阶段性的合并fsimage与edits文件,以此来控制edits的文件大小在合理的范围



HDFS采用Master/Slave架构对文件系统进行管理。


愿对你有益,喜欢可关注+收藏,分享给更多的人哦!

长按即可识别关注二维码哦!





--------------------------------------





以上是关于HDFS定义和架构的主要内容,如果未能解决你的问题,请参考以下文章

HDFS 系统架构

3HDFS架构和YARN架构

HDFS架构和组成

Hadoop系列之HDFS架构

flume与hdfs

HDFS 架构