HDFS的优缺点和缺陷
1、选择 HDFS 存储数据,是因为 HDFS 具有以下优点:
(1) 高容错性
数据自动保存多个副本。它通过增加副本的形式,提高容错性。
某一个副本丢失以后,它可以自动恢复,这是由 HDFS 内部机制实现的,我们不必关心。
(2) 适合批处理
它是通过移动计算而不是移动数据。
它会把数据位置暴露给计算框架。
(3) 适合大数据处理
数据规模:能够处理数据规模达到 GB、TB、甚至PB级别的数据。
文件规模:能够处理百万规模以上的文件数量,数量相当之大。
节点规模:能够处理10K节点的规模。
(4) 流式数据访问
一次写入,多次读取,不能修改,只能追加。
它能保证数据的一致性。
(5) 可构建在廉价机器上
它通过多副本机制,提高可靠性。
它提供了容错和恢复机制。比如某一个副本丢失,可以通过其它副本来恢复。
2、HDFS 缺点:
(1) 不适合低延时数据访问;
比如毫秒级的来存储数据,这是不行的,它做不到。
它适合高吞吐率的场景,就是在某一时间内写入大量的数据。但是它在低延时的情况 下是不行的,比如毫秒级以内读取数据,这样它是很难做到的。
3、改进策略
(2) 无法高效的对大量小文件进行存储
存储大量小文件的话,它会占用 NameNode大量的内存来存储文件、目录和块信息。这样是不可取的,因为NameNode的内存总是有限的。
小文件存储的寻道时间会超过读取时间,它违反了HDFS的设计目标。 改进策略
(3) 并发写入、文件随机修改
一个文件只能有一个写,不允许多个线程同时写。
仅支持数据 append(追加),不支持文件的随机修改。
HDFS缺陷
Apache Hadoop HDFS从出现到现在经过10多年的发展,已经到了非常成熟的状态,广泛应用于业界,解决海量文件的存储需求。但随着数据量的增长,以及对于数据使用方式的多样化 ,HDFS的架构局限性就逐渐被放大,NameNode在大规模场景很容易成为瓶颈:
•元数据的扩展性:NameNode是一个中央元数据服务节点,也是集群管理节点,文件系统的元数据以及块位置关系全部在内存中。NameNode对内存的要求非常高,需要定制大内存的机器,内存大小也限制了集群扩展性。京东的NameNode采用内存512GB的机器,字节跳动的NameNode采用内存1TB的机器。此外,NameNode的堆分配巨大,京东的NameNode需要360GB的堆大小,对GC的要求比较高,京东定制化的JDK11+G1GC在GC时性能良好,但是一般规模的公司不具备维护JDK能力,该方案不具备普遍性。字节跳动把NameNode修改成C++版本,这样分配、释放内存都由程序控制,也达到了不错的性能,该方案仍然不具普遍性,因为开发和维护C++版本的NameNode也需要不小规模的团队。
•块汇报风暴:HDFS块大小默认128M,启动几百PB数据量的集群时,NameNode需要接受所有块汇报才可以退出安全模式,因此启动时间会达数小时。当集群全量块汇报、下线节点、balance集群存储,也会对集群元数据服务的性能造成影响,这些根本原因都是DataNode需要把所有块汇报给NameNode。
•全局锁:NameNode 有一把FSNamesystem全局锁,每个元数据请求时都会加这把锁。虽然是读写分开的,且有部分流程对该锁的持有范围进行了优化,但依然大问题。同时FSNamesystem内部的FSDirectory(Inode树)还存在一把单独的锁,用来保护整棵树以及BlockMap的访问和修改。
HDFS的优缺点和缺陷相关推荐
- hdfs通过接口退出安全模式_Hadoop之HDFS简介
奇技指南HDFS作为运行在通用硬件上的分布式文件系统,和现有的分布式文件系统既有很多的共同点,也存在很多的差异.本文从HDFS是什么开始介绍,包括了HDFS架构.HDFS的读写.各个组件的作用.具体操 ...
- hdfs数据节点分发什么协议_分布式文件系统HDFS解析
Hadoop 主要由HDFS和MapReduce 引擎两部分组成.最底部是HDFS,它存储Hadoop 集群中所有存储节点上的文件.HDFS 的上一层是MapReduce 引擎,该引擎由JobTrac ...
- 非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开 ...
- HDFS Federation(HDFS 联盟)介绍
1. 当前HDFS架构和功能概述 我们先回顾一下HDFS功能.HDFS实际上具有两个功能:命名空间管理(Namespace management)和块/存储管理服务(block/storage man ...
- HDFS 基础部分详解
精选30+云产品,助力企业轻松上云!>>> 上一篇文章 Hadoop 系列之 1.0和2.0架构 中,提到了 Google 的三驾马车,关于分布式存储,计算以及列式存储的论文,分别对 ...
- Hadoop 生态系列之 HDFS
目前 Hadoop 系列文章的规划就是这样,持续补充完善中... 同时可以访问 :https://data.cuteximi.com Hadoop 生态系列之1.0和2.0架构 Hadoop 生态系列 ...
- Hadoop 系列之 HDFS
Hadoop 系列之 HDFS 花絮 上一篇文章 Hadoop 系列之 1.0和2.0架构 中,提到了 Google 的三驾马车,关于分布式存储,计算以及列式存储的论文,分别对应开源的 HDFS,Ma ...
- Hadoop之HDFS简介
女主宣言 HDFS作为运行在通用硬件上的分布式文件系统,和现有的分布式文件系统既有很多的共同点,也存在很多的差异.本文从HDFS是什么开始介绍,包括了HDFS架构.HDFS的读写.各个组件的作用.具体 ...
- 大数据之-Hadoop之HDFS_HDFS的优缺点---大数据之hadoop工作笔记0049
然后我们来看这个HDFS的优缺点, 先看他的优点: 高容错性,前面我们说, 他默认给我们保存3份副本,每个文件都给我们保存3个副本. 如果3个副本中的某个副本挂掉了,他会再找一个节点,把内容copy过 ...
最新文章
- showdialog 尝试读取或写入受保护的内存_共享内存在不同系统的应用与优劣详解...
- Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)
- 国内首个手机AR实景驾驶导航上线,还能识别车辆行人,搜狗地图出品
- 没学过python、但是还是有公司要-扎心!“我学了半年 Python,还是找不到工作”...
- 快速排序的实现及优化
- 2019ICPC(沈阳) (回文自动机+Palindrome Series优化dp)
- 佳博热敏条码打印机修改ip_高赋码热转印打印和热敏打印区别
- 深度学习pytorch--softmax回归(一)
- python 选择多个文件夹_如何同时选择多个文件?
- 入门级----测试的执行、环境的搭建、每日构建、测试记录和跟踪、回归测试、测试总结和报告...
- SQL中,like的SQL注入防止,使用预编译SQL(?)的写法
- AS技巧合集「调试技巧篇」
- Python:学习笔记之函数的递归
- C#:使用dsoframer.ocx控件实现内嵌office效果(详解)
- sql更新语句中update set from用法
- 经典书籍《征服市场的人》阅读心得
- python adb 实现对支付宝登录及后台监控
- 计算机休眠不播放音乐,电脑休眠后不能播放音乐怎么办
- Boosting(一)
- 完美解决: Wampserver64找不到msvcr120.dll,需要重新安装服务 亲测可用【简单高效】
热门文章
- 研究亥姆霍兹线圈轴线磁场分布
- HikariCP探活机制如何保证链接有效
- Ipad电容笔买原装还是平替?高性价比的ipad平替电容笔推荐
- matlab中如何读写txt,Matlab中读取txt文件的几种方法
- STM32F103+FFT+OLED25664的音乐频谱制作分享(继续干货)
- .md是什么文件_生信中常见的数据文件格式
- pytho自动发送微信消息
- oracle 12c 字符集修改 AL32UTF8 改为 ZHS16GBK
- web服务器角色源文件,IIS 7.5中提供的Web服务器(IIS)角色服务详请
- 体验 Chrome 开发者工具的 12个骚操作!