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的特点
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定义和架构的主要内容,如果未能解决你的问题,请参考以下文章