zl程序教程

您现在的位置是:首页 >  其他

当前栏目

(二)HDFS架构设计理念与缺陷

2023-04-18 14:22:39 时间

目录

 

设计理念

1)支持超大数据集

2)绝对能够应对硬件的故障

3)流式数据处理

4)简化的数据一致性模型

5)尽量移动计算,但是不要移动数据

缺陷

1) 实时性差

2) 小文件问题

3)文件修改问题


设计理念

1)支持超大数据集

hdfs分布式存储,将大量的数据存放到N台机器上,每台机器存放部分数据.机器可横向扩展,所以hdfs定位就是针对超大数据集的。

2)绝对能够应对硬件的故障

hdfs将超大数据集拆分成小块, 然后每个小块在多个机器上都有副本, 如果某个机器硬件故障, 这台机器上的数据可以从其他机器的备份上回复回来,并且是自动对故障进行恢复

3)流式数据处理

hdfs读写文件系统上的数据的时候,是基于流的。hdfs用这个所谓的流式数据处理,其实主要就是为了保证高吞吐量的文件读写,而不是低延迟的文件读写。

4)简化的数据一致性模型

同时支持对文件的写和读,很麻烦的,大量的并发冲突问题

因为这个hdfs是为了支持超大数据集,分布式存储,离线批量处理的,所以说,他的数据一致性模型是简化的,在他这里的话,一个文件只能一次写入,然后之后就只能追加,不能随便改之前的数据了

他的理念就是,write-once,ready-many-times,一次写,然后多次读,这样就没有数据读写并发冲突,以及数据如何维护一致性的问题了。

5)尽量移动计算,但是不要移动数据

这个意思就是说,如果你要对分布在多台机器上的数据,进行分布式计算,使用比如mapreduce或者是spark都可以,那么此时尽可能让你的计算任务是靠近这个数据,而不是说在集群里通过网络胡乱传输数据,那样会导致性能极差极差

缺陷

1) 实时性差

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

2) 小文件问题

由于 NameNode 将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总量受限于 NameNode 的内存总容量。根据经验,每个文件、目录和数据块的存储信息大约占 150 字节。过多的小文件存储会大量消耗 NameNode 的存储量。

3)文件修改问题

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