大数据开发:分布式文件存储系统简介

大数据开发:分布式文件存储系统简介在分布式存储技术体系当中,分布式文件存储是其中的分类之一,也是大数据架构当中常常用到的。得益于Hadoop的高人气,Hadoop原生的HDFS分布式文件系统,也广泛为人所知。但是分布式文件存储系统,并非只有HDFS。今天的大数据开发分享,我们就主要来讲讲常见的分布式文件存储系统。分布式文件系统,可以说是分布式系统下的一个子集,这里我们选取市场应用比较广泛的几款产品,HDFS、Ceph、FastDFS以及MooseFS来做简单的分析——HDFS如上所说,HDFS是分布式文件系统当中人气非常

大家好,又见面了,我是你们的朋友全栈君。

在分布式存储技术体系当中,分布式文件存储是其中的分类之一,也是大数据架构当中常常用到的。得益于Hadoop的高人气,Hadoop原生的HDFS分布式文件系统,也广泛为人所知。但是分布式文件存储系统,并非只有HDFS。今天的大数据开发分享,我们就主要来讲讲常见的分布式文件存储系统。

大数据开发:分布式文件存储系统简介

分布式文件系统,可以说是分布式系统下的一个子集,这里我们选取市场应用比较广泛的几款产品,HDFS、Ceph、FastDFS以及MooseFS来做简单的分析——

大数据开发:分布式文件存储系统简介

HDFS

如上所说,HDFS是分布式文件系统当中人气非常高的一个。基于Hadoop基础架构,HDFS天然就有很好的优势,尤其是面对大规模离线批处理任务,地位难以撼动。

HDFS,可以为各类分布式计算框架如Spark、MapReduce等提供海量数据存储服务,同时HBase、Hive底层存储也依赖于HDFS。与Hadoop生态的紧密联系,也使其稳稳占据市场主流地位。

优点:

高容错性:数据自动保存多个副本,副本丢失后,自动恢复

适合批处理:移动计算而非数据。数据位置暴露给计算框架

适合大数据处理:GB,TB,甚至PB级数据。百万规模以上文件数量。10K+节点规模。

流式文件访问:一次性写入,多次读取。保证数据一致性。

可构建在廉价机器上:通过多副本提高可靠性。提供容错和恢复机制。

缺点:

不适合低延迟数据访问场景:比如毫秒级,低延迟与高吞吐率

不适合小文件存取场景:占用NameNode大量内存。寻道时间超过读取时间。

不适合并发写入,文件随机修改场景:一个文件只能有一个写者。仅支持append

不符合posix语义,需要通过SDK来读写操作。对java支持良好,其他语言一般

Ceph

企业级的存储需求,通常分为块存储、文件存储和对象存储,而Ceph能够同时满足这三种需求。Ceph提供三大存储接口,能够将企业中的三种存储需求统一汇总到一个存储系统中,并提供分布式、横向扩展,高度可靠性的存储,具备高可用性、高性能及可扩展等特点。

优点:

支持对象存储(OSD)集群,通过CRUSH算法,完成文件动态定位,处理效率更高

符合posix语义,支持通过FUSE方式挂载,降低客户端的开发成本,通用性高

支持分布式的MDS/MON,无单点故障

强大的容错处理和自愈能力

支持在线扩容和冗余备份,增强系统的可靠性

缺点:

目前处于试验阶段,系统稳定性有待考究

部署和运维较复杂,集群管理工具较少

FastDFS

FastDFS是以C语言开发的一项开源轻量级分布式文件系统,提供文件存储、文件同步、文件访问(文件上传/下载)等通用文件管理操作,尤其适合以文件为载体的在线服务,如图片网站,视频网站等。追求高性能和高扩展性FastDFS,可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适。

优点:

支持在线扩容机制,增强系统的可扩展性

实现了软RAID,增强系统的并发处理能力及数据容错恢复能力

支持主从文件,支持自定义扩展名

主备Tracker服务,增强系统的可用性

缺点:

不支持POSIX通用接口访问,通用性较低

对跨公网的文件同步,存在较大延迟,需要应用做相应的容错策略

同步机制不支持文件正确性校验,降低了系统的可用性

通过API下载,存在单点的性能瓶颈

MooseFS

MooseFS是在HDFS之后出现的,它也是类似的MDS+OSS架构,区别于HDFS的是,MooseFS没有对运行其上的业务做假设,它没有假设业务是大文件或海量小文件,也就是说,MooseFS的定位是像ext4、xfs、NTFS等单机文件系统一样的通用型文件存储。

优点:

扩容成本低、支持在线扩容,不影响业务,体系架构可伸缩性极强

支持POSIX通用接口访问,支持通过FUSE方式挂载,降低客户端的开发成本,通用性高

文件对象高可用,可设置任意的文件冗余程度(提供比Raid 10更高的冗余级别)

提供系统负载,将数据读写分配到所有的服务器上,加速读写性能

实现了软RAID,增强系统的并发处理能力及数据容错恢复能力

数据恢复比较容易,增强系统的可用性。有回收站功能,方便业务定制

缺点:

Master Server的单点解决方案的健壮性。Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间

Master Server本身的性能瓶颈。MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展

随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大

大数据开发:分布式文件存储系统简介

关于大数据开发,分布式文件存储系统,以上就为大家做了简单的介绍了。分布式文件系统,是解决大数据存储问题的重要底层支持,对于市场主流分布式存储产品,需要有相应的了解才行。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135582.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月4日 下午10:36
下一篇 2022年6月4日 下午10:36


相关推荐

  • 三门问题python 编程_趣味编程:三门问题

    三门问题python 编程_趣味编程:三门问题三门问题 也称为蒙提霍尔问题 MontyHallPro 你在参加一个节目 面前是三扇关闭着的门 其中一扇后面是小汽车 选中它就可赢得汽车 另外两扇后面各是一只羊 你选择了其中一扇 但没有打开它 这时主持人打开了剩下两扇门中的一扇 后面是一只山羊 这里有个隐含前提 主持人是知道门后的情况的 主持人问你 要不要换另一扇仍然关闭着的门 还是就要你刚才选中的那扇 那么问题就是 换另一扇门会

    2026年3月18日
    2
  • Protractor小结

    Protractor小结一 简介 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp Protractor 是一个 Node js 程序 需要安装 Node js 才可运行 Protractor 默认使用 Jasmine 测试框架 Protractor 是基于 WebDriverJS 作了封装 SeleniumServ nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp SeleniumServ 介于测试脚本 用 WebDriverAPI 所写 和浏览器 Driver 由 WebDriver 协议控

    2026年3月19日
    3
  • linux下c使用lzma_linux 编译lzma

    linux下c使用lzma_linux 编译lzmaLinux 下大部分系统默认自带 python2 x 的版本 最常见的是 python2 6 或 python2 7 版本 默认的 python 被系统很多程序所依赖 比如 centos 下的 yum 就是 python2 写的 所以默认版本不要轻易删除 否则会有一些问题 如果需要使用最新的 Python3 那么我们可以编译安装源码包到独立目录 这和系统默认环境之间是没有任何影响的 python3 和 python2 两个环境并存即可

    2026年3月17日
    2
  • Centos小技巧

    Centos小技巧

    2021年6月3日
    129
  • 动态路由协议

    动态路由协议一 动态路由 1 1 动态路由基础 1 1 1 动态路由基于某种路由协议实现 1 1 2 动态路由特点 1 减少了管理任务 2 占用了网络带宽 1 2 动态路由协议 1 2 1 概述路由器之间用来交换信息的语言 1 2 2 度量值 1 跳数 跳数度量可以简单地记录路由器的跳数 2 带宽 带宽度量将会选择高带宽路径 而不是低带宽路径

    2026年3月20日
    1
  • Claude Code Router完全指南:安装配置与多模型集成实战

    Claude Code Router完全指南:安装配置与多模型集成实战

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号