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

大数据开发:分布式文件存储系统简介在分布式存储技术体系当中,分布式文件存储是其中的分类之一,也是大数据架构当中常常用到的。得益于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对内存的需求量会不断增大

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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 关于我在黑马程序员培训毕业后的亲身体验

    关于我在黑马程序员培训毕业后的亲身体验首先申明:我本人已经于2016年5月份在广州传智播客java培训完毕业,和黑马程序员官网没有任何的利益往来,也没有人出钱给我帮他们做软文推广,这是我在黑马程序员的亲身体验,不存在虚构。

  • Oracle number数据类型的使用[通俗易懂]

    Oracle number数据类型的使用[通俗易懂]需要首先明白有效位的含义:从左到右,从第一个不为零的数开始计数第一种情况:number后面都是两个正数,第一个数表示有效位,第二个数表示小数点后的位数(也就是精确度,需要进行四舍五入)例如number(2,1)存入的数据有1,0.1,1.666分析过程:存入1:要求有效位小于等于2,所以自动补充0,存入1实际上判断的是1.0是否符合条件,自然可以添加存入0….

  • 工具说明书格式_lastingfor什么药

    工具说明书格式_lastingfor什么药下载安装:Downloads-DBBrowserforSQLitehttps://sqlitebrowser.org/dl/下载64位安装版:DB.Browser.for.SQLite-3.12.2-win64.msiZip文件是免安装解压缩版,PortableApp是一个exe文件打包版。安装完,打开后是这个样子:点击上面红框处,新建一个database,选择路径,输入文件名,保存即可。在SQLite里,一个database就是一个后缀db的文…

  • SELECT DISTINCT

    SELECT DISTINCT

  • 如何用jdbc连接数据库(数据库java连接)

    目录一、介绍1、情况说明2、安装软件及依赖包二、配置连接数据库其他情况一、介绍1、情况说明在这里我使用SpringBoot配置Mybaits连接到PostgreSql数据库的。我的源码也会提供给大家(此文末尾),效果如下数据库:运行效果:2、安装软件及依赖包完整搭建SpringBoot及依赖包:https://blog.csdn.net…

  • vagrant系列四:vagrant搭建redis与redis的监控程序redis-stat「建议收藏」

    vagrant系列四:vagrant搭建redis与redis的监控程序redis-stat

发表回复

您的电子邮箱地址不会被公开。

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