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

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

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

  1. 盘点分布式文件存储系统____分布式文件存储系统简介

    盘点分布式文件存储系统 在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储.Nas挂载.ftp等等,今天就来盘点一下,分布式文件存储系统. 一 ...

  2. 大数据开发的面试总结

    目录 1 谈谈你对大数据的理解吧!MapReduce核心原理? 2 HDFS核心原理 3 hive原理 4 spark家族 5 hbase原理 6 如何应用大数据技术? 7 对开发来说算法意味着什么? ...

  3. BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略

    BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...

  4. 大数据开发技术课程报告(搭建Hadoop完全分布式集群操作集群)

    文章目录 大数据开发技术课程报告内容及要求 一. 项目简介和实验环境 二. 虚拟机的各项准备工作 三. 安装JDK并配置环境变量 四. 安装Hadoop并配置环境变量 五. 配置Hadoop完全分布式 ...

  5. 大数据开发:MongoDB系统架构简介

    MongoDB作为NoSQL数据库,基于分布式环境的场景下,对于系统架构的性能是要求比较高的.面对分布式场景下的大规模数据存储,MongoDB以文档型存储任务为主.今天的大数据开发学习分享,我们就来讲 ...

  6. 两个读书笔记:springboot+vue.js分布式组件全栈开发训练营 + 大数据开发基础

    (springboot+vue.js分布式组件全栈开发训练营原文在notion中, 大数据开发在思维导图中, 这个博客只是保存, 无法阅读. ) what is different between s ...

  7. 大数据开发笔记(七):Kafka分布式流式处理

      ✨大数据开发笔记推荐: 大数据开发面试知识点总结_GoAI的博客-CSDN博客_大数据开发面试​本文详细介绍大数据hadoop生态圈各部分知识,包括不限于hdfs.yarn.mapreduce.h ...

  8. 大数据开发笔记(二):Yarn分布式集群操作系统

      ✨大数据开发笔记推荐: 大数据开发面试知识点总结_GoAI的博客-CSDN博客_大数据开发面试​本文详细介绍大数据hadoop生态圈各部分知识,包括不限于hdfs.yarn.mapreduce.h ...

  9. 大数据开发学习:进行大数据开发课程有哪些

    想要成为工资高.待遇好的大数据工程师,是需要专业的技能的.对于专业大数据技术的学习,需要学习的大数据开发课程有哪些呢? 大数据开发课程: 一.Hadoop 可以说,hadoop几乎已经是大数据代名词. ...

最新文章

  1. 【Maven学习】Nexus私服代理其他第三方的Maven仓库
  2. 互联网送给我们的---“平等互助”
  3. python【蓝桥杯vip练习题库】ALGO-69字符串逆序
  4. Linux下VTK、ITK的安装及运行 转载
  5. 【Python基础】科学计算库Scipy简易入门
  6. Android开发之百度地图在地图上绘画圆的方法(官方方法)
  7. idea 的lombok安装完不生效的办法
  8. 基于JAVA+SpringMVC+MYSQL的报价管理系统
  9. 【树莓派】:配置+SSH+VNC,实现深度学习目标检测
  10. oracle使用表空间语句,oracle表空间语句
  11. Hadoop生态基础学习总结
  12. 如何将PDF转换为DOCX?
  13. 《离散数学及其应用》章节总结与github地址
  14. Qt 5.x 多点触摸配置
  15. nltk词性标注的涵义
  16. mysql 没有开启binlog_mysql binlog没有开启数据怎么恢复
  17. Android Studio 运行项目显示 Unfortunately,xxxx has stopped.
  18. 苹果手机更新后开不了机_苹果7突然黑屏,苹果7开不了机
  19. unity3d实现第一人称射击游戏之CS反恐精英(四)(子弹模块,音效特效)
  20. RAM,SRAM,SDRAM工作原理(很长)

热门文章

  1. 关于Marshal 类的整理
  2. OKHttp之OkIO
  3. 10种疗法治愈头痛、头晕、头胀、失眠
  4. c语言讨论学,看看大家都是如何谈论C语言的
  5. 自动调参NNI nnictl 支持的命令
  6. 仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示
  7. vim配置python3开发环境
  8. zookeeper与grpc集成实现服务注册与发现
  9. PYTHION知识总结和assert利用剑蚁登录
  10. MySQL8.0安装程序在安装此包时遇到意外错误。这可能表明这个包有问题。错误码是2503。