HDFS优缺点及解决方案

1 HDFS优点

  • 海量数据存储: HDFS可横向扩展,其存储的文件可以支持PB级别数据。
  • 高容错性:节点丢失,系统依然可用,数据保存多个副本,副本丢失后自动恢复。 可构建在廉价(与小型机大型机比)的机器上,实现线性扩展(随着节点数量的增加,集群的存储能力,计算能力随之增加)。
  • 文件存储:HDFS采用数据块的方式存储数据,将一个大文件切分成多个小文件,分布存储。

2 HDFS缺点

HDFS有几个缺点:

  • 元数据的扩展性:NameNode是一个*元数据服务节点,也是集群管理节点,文件系统的元数据以及块位置关系全部在内存中。NameNode对内存的要求非常高,需要定制大内存的机器,内存大小也限制了集群扩展性。
  • 全局锁:NameNode 有一把FSNamesystem全局锁,每个元数据请求时都会加这把锁。虽然是读写分开的,且有部分流程对该锁的持有范围进行了优化,但依然大问题。
  • 块汇报风暴:HDFS块大小默认128M,启动几百PB数据量的集群时,NameNode需要接受所有块汇报才可以退出安全模式,因此启动时间会达数小时。

HDFS不适用场景:

  • 不能做到低延迟数据访问
  • 不适合大量的小文件存储
  • 不适合写多读少
  • 不适合并发写入

3 解决方案-对象存储

3.1 OSS

        阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。

3.2 MinIO

        MinIO是个高性能,云原生的对象存储,提供了与 Amazon S3 云存储服务兼容的 API,使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构,轻量,操作简单。

3.3 Ceph

        Ceph 是一个分布式对象、块和文件存储平台。红帽支持的存储解决方案,能够提供企业中三种常见的存储需求:块存储、文件存储和对象存储,相当于是全平台解决方案。

3.4 SeaweedFS

        SeaweedFS是一种简单的、高度可扩展的分布式文件系统。旨在优化Fackbook内部图片存储和获取。SeaweedFS最初作为一个对象存储来有效地处理小文件。*主服务器只管理文件卷,而不是管理*主服务器中的所有文件元数据,它允许这些卷服务器管理文件及其元数据。这减轻了*主服务器的并发压力,并将文件元数据传播到卷服务器,允许更快的文件访问(只需一个磁盘读取操作)。

参考:

https://mp.weixin.qq.com/s/5tEZsswlZMqS9pjV1h2rEg 

上一篇:Hdfs


下一篇:整个Hadoop框架工作流程