HDFS优缺点及解决方案
1 HDFS优缺点
1.1 HDFS优点
- 海量数据存储: HDFS可横向扩展,其存储的文件可以支持PB级别数据。
- 高容错性:节点丢失,系统依然可用,数据保存多个副本,副本丢失后自动恢复。 可构建在廉价(与小型机大型机比)的机器上,实现线性扩展(随着节点数量的增加,集群的存储能力,计算能力随之增加)。
- 大文件存储:HDFS采用数据块的方式存储数据,将一个大文件切分成多个小文件,分布存储。
1.2 HDFS缺点
HDFS有几个缺点:
- 元数据的扩展性:NameNode是一个中央元数据服务节点,也是集群管理节点,文件系统的元数据以及块位置关系全部在内存中。NameNode对内存的要求非常高,需要定制大内存的机器,内存大小也限制了集群扩展性。
- 全局锁:NameNode 有一把FSNamesystem全局锁,每个元数据请求时都会加这把锁。虽然是读写分开的,且有部分流程对该锁的持有范围进行了优化,但依然大问题。
- 块汇报风暴:HDFS块大小默认128M,启动几百PB数据量的集群时,NameNode需要接受所有块汇报才可以退出安全模式,因此启动时间会达数小时。
HDFS不适用场景:
- 不能做到低延迟数据访问
- 不适合大量的小文件存储
- 不适合写多读少
- 不适合并发写入
2 三种存储方案
2.1 块存储
2.1.1 描述
块存储是将裸磁盘空间整个映射给主机使用的,可以选择直接将裸设备给操作系统使用,也可以划分经过RAID、逻辑卷等方式划分出多个逻辑的磁盘供系统使用(比如划分为6个500G的磁盘),主机层面操作系统识别出硬盘,但是操作系统无法区分这些映射上来的磁盘到底是真正的物理磁盘还是二次划分的逻辑磁盘,操作系统接着对磁盘进行分区、格式化,与我们服务器内置的硬盘没有什么差异。
块存储不仅仅是直接使用物理设备,间接使用物理设备的也叫块设备,比如虚机创建虚拟磁盘。VMware、VirtualBox都可以创建虚拟磁盘。
2.1.2 优点
- 通过RAID与LVM等手段,对数据提供了保护(RAID可实现磁盘的备份和校验,LVM可以做快照)
- RAID将多块廉价的硬盘组合起来,构建大容量的逻辑盘对外提供服务,性价比高
- 写数据时,由于是多块磁盘组合成的逻辑盘,可以并行写入,提升了读写效率
- 很多时候块存储采用SAN架构组网,传输速率以及封装协议的原因,使得传输速度与读写速率得到提升
2.1.3 缺点
- 采用SAN架构组网时,需要额外为主机购买光纤通道卡,还要买光纤交换机,造价成本高
- 不利于不同操作系统主机间的数据共享,因为操作系统使用不同的文件系统,格式化完成后,不同文件系统间的数据是无法共享的
2.1.4 设备
- 磁盘
- 磁盘阵列
2.2 文件存储
2.2.1 描述
文件存储主要解决块存储无法共享文件问题。
2.2.2 优点
- 造价低
- 适合文件共享
- 大数据大文件存储
2.2.3 缺点
- 读写速率低,传输速率慢
- 文件数据太大会影响性能
2.3 对象存储
2.3.1 描述
对象存储是一种数据存储,其中每个数据单元(称为“对象”)作为离散单元存储。这些对象实际上可以是任何类型的数据:pdf,视频,音频,文本,网站数据或任何其他文件类型。
与文件存储相反,这些对象存储在单个平面结构中,没有文件夹层次结构。在对象存储中,与文件存储使用的嵌套分层结构不同,所有对象都存储在平面地址空间中。此外,所有默认和自定义元数据都与对象本身(不作为单独的文件系统表或索引的一部分)一起存储在具有唯一标识符的平面地址空间中,并且这种方式变得更容易索引和访问。
对象存储在基于云的存储方案中非常常见,可用于以极高的可伸缩性和可靠性管理,处理和分发内容。平面寻址方案意味着访问单个对象既快速又简单:对象名称可以作为查找表中的“键”。对象存储系统只需要知道您要查找的对象的键(名称),然后可以使用查找表快速轻松地将其返回给您。
2.3.2 优点
- 结合了块存储与文件存储的优点
2.3.3 缺点
- 数据库等追求高性能的应用更适合采用块存储
- 对象存储的成本比普通的文件存储还是较高
2.4 三种存储方案对比
对象存储 | 文件存储 | 块存储 | |
一致性 | 最终一致性 | 强一致性 | 强一致性 |
结构 | 非结构化 | 层级结构 | 以块为结构 |
存储级别 | 对象级别 | 文件级别 | 块级别 |
应用举例 |
腾讯云COS 阿里云OSS AWS的S3 |
HDFS Ceph 的 CephFS |
Sheepdog AWS 的 EBS 阿里云的盘古系 |
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
https://www.redhat.com/zh/topics/data-storage/file-block-object-storage文件存储、块存储还是对象存储?
HDFS优缺点及解决方案相关推荐
- HDFS数据迁移解决方案之DistCp工具的巧妙使用
HDFS数据迁移解决方案之DistCp工具的巧妙使用 参考文章: (1)HDFS数据迁移解决方案之DistCp工具的巧妙使用 (2)https://www.cnblogs.com/felixzh/p/ ...
- HDFS High Availability(HA)高可用、单点故障、主备集群、脑裂问题、数据同步问题、HDFS HA解决方案—QJM
HDFS High Availability(HA)高可用 1.1 High Availability背景知识 1.1.1 单点故障.高可用 单点故障(英语:single point of failu ...
- hdfs通过接口退出安全模式_Hadoop之HDFS简介
奇技指南HDFS作为运行在通用硬件上的分布式文件系统,和现有的分布式文件系统既有很多的共同点,也存在很多的差异.本文从HDFS是什么开始介绍,包括了HDFS架构.HDFS的读写.各个组件的作用.具体操 ...
- 高可用性的HDFS—Hadoop分布式文件系统深度实践
<高可用性的HDFS-Hadoop分布式文件系统深度实践> 基本信息 作者: 文艾 王磊 出版社:清华大学出版社 ISBN:9787302282587 上架时间:2012-5-14 出版日 ...
- Hadoop之HDFS简介
女主宣言 HDFS作为运行在通用硬件上的分布式文件系统,和现有的分布式文件系统既有很多的共同点,也存在很多的差异.本文从HDFS是什么开始介绍,包括了HDFS架构.HDFS的读写.各个组件的作用.具体 ...
- 大数据存储基石——HDFS
简介 HDFS产生背景 随着数据量越来越大,在一个本地文件系统里边已经存不下所有的数据,需要将数据分配到更多的操作系统和文件管理系统,但是不方便管理和维护,所以需要一个系统来统一管理这些存储了所有数据 ...
- 【Hadoop快速入门】Hdfs、MapReduce、Yarn
1. Hahoop概述 1.1 Hodoop是什么 1) Hadoop是一个有Apache基金会所开发的分布式系统基础架构 2) 主要解决海量数据的存储和海量数据的分析计算问题 3) 广义上来说,Ha ...
- 推荐系统lambda架构学习笔记之Hadoop、HDFS、YARNMapReduce(三)
Hadoop Hadoop介绍 Hadoop名字的由来 作者:Doug cutting Hadoop项目作者的孩子给一个棕黄色的大象样子的填充玩具的命名 Hadoop的概念: Apache™ Hado ...
- Hadoop、分布式文件系统HDFS、YARN、MAPREDUCE
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 1.1 什么是Hadoop Hadoop名字的由来 作者:Do ...
- HDFS小文件优化方法
HDFS小文件弊端 HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空 ...
最新文章
- golang中的plugin包
- 移动IM开发指南2:心跳指令详解
- 软考解析:2015年上半年下午试卷
- How to include html native content to UI5 page - 直接在xml view里添加html namespace
- Bootstrap 表单的扩展控件
- Spring AOP切入点
- 日志分析 批量给指定内容标记颜色 word 文本
- Python数字图像处理
- 蔻享学术下载器:KouShare-dl
- HBase的rowKey设计技巧
- KEIL编译时Warning: C3008W: splitting LDM/STM has no benefit的消除
- 解决windows10下总是很快自动黑屏进入睡眠问题
- OD使用经验【转载】
- 【动漫风格迁移】基于AnimeGAN的安卓APP工具
- 网络路由器查表过程模拟
- Python Selenium:键盘鼠标操作
- 2014 SuperMap GIS自主创新与应用研讨会资料集
- K均值聚类算法(Kmeans)讲解及源码实现
- php 图片合成,php原生图片合成和文字生成图片
- css3图标一直旋转样式,css3动画--图标翻转效果
热门文章
- SpringCloud高级应用(OpenFeign Ribbon Steam Sleuth+Zipkin)
- log4j配置(很详细)
- 金蝶专业版怎么反过账当月_金蝶KIS专业版怎么反过账
- yasm linux gcc,vs+msys2+yasm 编译libx264+ffmpeg详细解释(32位或64位)
- proteus仿真串口
- 2020-05-11 华为性格测试
- 74cms 5.0.1版本文件包含漏洞复现
- objectc foundation class hierachy
- visio软件接口流程图_绘制流程图——Visio可以让你事半功倍哦!
- rxbus 源码_从 RxBus 这辆兰博基尼深入进去